java - 使用 vtd-xml 更新属性值

标签 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 工作的“标记化”方式,它“感觉”不正确,所以我只是在寻找我已经做了正确的事情的肯定。

最佳答案

您的代码将正常工作...假设您将调用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/

相关文章:

java - Spring 3、Spring Security、LDAP、如何向 LDAP 添加角色?

java - 请求的资源 (/) 不可用

java - VTD-XML 解析性能(速度关键因素)。请求反馈/评论

java - 使用VTD-XML和Java修改巨大的xml文件中xPath表达式找到的所有值

java - 使用 vtd-xml 加载巨大的 4Gb XML 文件

java - 从 Java 数组列表中删除学生时出错

Java - 在 contentPane 容器中显示标题

java - 随机掷2个骰子(java)

java - 如何获取 XML 文本作为输入流

java - 在 VTD-XML 中与 AutoPilot 一起使用时,XPath 评估失败