Java 使用vtd xml更新属性值

Java 使用vtd xml更新属性值,java,vtd-xml,Java,Vtd Xml,给定一个属性的xpath和一个新值,我希望将属性值更新为新值 我在这里遵循了这个例子:并得出以下结论: autoPilot.selectXPath(xpath); modifier.updateToken(vtdNav.getAttrVal(vtdNav.toString(autoPilot.evalXPath())), newContent); …我的测试都通过了,但可能是因为我不习惯vtd xml的“标记化”工作方式,它“感觉”不正确,所以我只是想确认我做了正确的事情。您的代码会工作得很好

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

我在这里遵循了这个例子:并得出以下结论:

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。。。as attr val紧跟在attr名称之后。不需要条件检查。

您的代码可以正常工作。。。假设您将调用modifier.output()

但这不是最优的

此声明

modifier.updateToken(vtdNav.getAttrVal(vtdNav.toString(autoPilot.evalXPath())), newContent);
可以写成

modifier.updateToken(autoPilot.evalXPath()+1, newContent);
因为如果属性名的索引值为i(!=-1),则属性值始终为i+1。。。as attr val紧跟在attr名称之后。不需要条件检查