给定属性的 xpath 和新值,我希望将属性值更新为新值。
我按照这里的例子:http://vtd-xml.sourceforge.net/codeSample/cs7.html并提出以下内容:
autoPilot.selectXPath(xpath);
modifier.updateToken(vtdNav.getAttrVal(vtdNav.toString(autoPilot.evalXPath())), newContent);
...我的测试全部通过,但也许是因为我不习惯 vtd-xml 工作的“标记化”方式,它“感觉”不正确,所以我只是在寻找我已经做了正确的事情的肯定。
最佳答案
您的代码将正常工作...假设您将调用modifier.output()。
但这不是最佳的...
本声明
modifier.updateToken(vtdNav.getAttrVal(vtdNav.toString(autoPilot.evalXPath())), newContent);
可以写成
modifier.updateToken(autoPilot.evalXPath()+1, newContent);
因为如果属性名称的索引值为 i (!=-1),则属性值始终为 i+1...,因为 attr val 紧跟在 attr 名称后面。不需要条件检查。
关于java - 使用 vtd-xml 更新属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44264661/