使用vtd-xml更新属性值

时间:2017-05-30 14:12:08

标签: java vtd-xml

给定属性的xpath和新值,我希望将属性值更新为新值。

我已按照此处的示例:http://vtd-xml.sourceforge.net/codeSample/cs7.html并提出以下内容:

autoPilot.selectXPath(xpath);
modifier.updateToken(vtdNav.getAttrVal(vtdNav.toString(autoPilot.evalXPath())), newContent);

...我的测试全部通过,但也许是因为我不习惯vtd-xml工作的“标记化”方式,它没有“感觉”正确所以我只是在寻找肯定我已经完成了正确的事。

1 个答案:

答案 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名称。无需进行条件检查。