【发布时间】:2018-10-11 20:50:09
【问题描述】:
我想将 lastModifiedBy 字段从 Tom Hanks 更改为 Jerry Garcia。我使用了这个 repo:https://github.com/clbanning/mxj/blob/master/xml.go 将 xml 字节解析为映射。但是,有些字段被遗漏了。
有什么简单的方法可以更改该字段并且只更改该字段?有数百个这样的文件,所以我需要以编程方式进行。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cp:coreProperties
xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-
properties" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:dcmitype="http://purl.org/dc/dcmitype/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:title></dc:title>
<dc:subject></dc:subject><dc:creator>John Kerry</dc:creator>
<cp:keywords></cp:keywords><dc:description></dc:description>
<cp:lastModifiedBy>TomHanks</cp:lastModifiedBy><cp:revision>6</cp:revision>
<dcterms:created xsi:type="dcterms:W3CDTF">2018-02-
20T18:08:00Z</dcterms:created><dcterms:modified
xsi:type="dcterms:W3CDTF">2018-04-24T19:43:00Z</dcterms:modified>
</cp:coreProperties>
【问题讨论】:
-
我怀疑在重新创建的 xml 中重新创建所有命名空间和其他属性会有些困难。换句话说,您可能会正确解析它并在某处提出“TomHanks”,但是当您将其写回为 xml 时,您会丢失文档中的一些信息。 go 是适合这项工作的工具吗?使用
sed或perl之类的东西是否会更好,并将其视为文本替换? -
这就是我开始想的......这里很头疼哈哈,因为我有很多关于打开文件的 go 代码等等。需要在 Windows 平台上运行,因此不确定 bash 是否会在 Windows 中作为可执行文件运行。