给定属性的xpath和新值,我希望将属性值更新为新值。
我已按照此处的示例:http://vtd-xml.sourceforge.net/codeSample/cs7.html并提出以下内容:
autoPilot.selectXPath(xpath);
modifier.updateToken(vtdNav.getAttrVal(vtdNav.toString(autoPilot.evalXPath())), newContent);
...我的测试全部通过,但也许是因为我不习惯vtd-xml工作的“标记化”方式,它没有“感觉”正确所以我只是在寻找肯定我已经完成了正确的事。
答案 0 :(得分:0)
您的代码将正常运行...假设您将调用modifier.output()。
但它不是最佳的......
本声明
modifier.updateToken(vtdNav.getAttrVal(vtdNav.toString(autoPilot.evalXPath())), newContent);
可以写成
modifier.updateToken(autoPilot.evalXPath()+1, newContent);
因为如果属性名称的索引值为i(!= - 1),则attrinute值始终为i + 1 ...因为attr val紧跟attr名称。无需进行条件检查。