修改XML文件中属性的最佳方法是什么,特别是我想要更改URL。
我遇到的最大问题是文件没有定义的编码。通过反复试验,我相信我已经确定其编码为UTF-16LE类型。如果有兴趣,这里是文件的开始十六进制转储:
3C 00 74 00 72 00 75 00 53 00 63 00 72 00 69 00
我无法将文件转换为其他编码,因为如果我这样做,那么当我重新创建.zip存档时,文件在程序中读取存档将无法正确读取此文件(程序是TruClient HP脚本创建者)。如果它可以转换它,进行更改,然后不开心我也很想知道如何做到这一点。
作为参考,这里是xml文档(直到相关节点):
<truScript platform="IE9" engineVersion="12.0.16.0" timestamp="Mon Jun 22 11:20:14 EDT 2015">
<step type="block" stepId="step:{00000000-0000-0000-0000-000000000001}" action="TopStep" level="1">
<step type="block" stepId="step:{00000000-0000-0000-0000-000000000002}" action="action" level="43" section="Script">
<step type="block" stepId="step:{00000000-0000-0000-0000-000000000003}" action="action" level="43" section="Init" />
<step type="block" stepId="step:{00000000-0000-0000-0000-000000000004}" action="action" level="43" section="Action">
<step type="testObject" stepId="step:{23b5fd01-da3e-628c-0dd7-69e535024d15}" action="Navigate" level="1" arguments="{"Location":"\"www.nbc.com\""}" testObject= "testObj:{00000000-0000-0000-0000-000000000001}" index="1" />
</step>
我希望用一个动作修改节点上的arguments属性=&#34;导航&#34;属性。
我尝试过创建一个perl脚本,但是我在写入文档时遇到了问题(我可以找到元素很好)以及确保它不会改变编码。
如果可能的话,我喜欢使用xmllint和xpath功能,但我还没有找到一种方法来强制它在运行xmllint命令之前将文件视为特定编码而不更改编码(我希望这是有道理的。)
如果需要任何其他信息,请告诉我。