我必须在这个xml中设置“count”属性的值:
<?xml version="1.0" encoding="UTF-8"?>
<task>
<trigger count="myCount" interval="myInterval"/>
<property name="myName" value="myValue"/>
<property name="mySecondName"value="mySecondValue">
</task>
我想用这样的代码(vtdxml库)用“foo”更改mycount值:
String count = "Foo";
if (vg.parseFile("C:\\Users\\_myPath_\\myFile.xml", true)) {
VTDNav vn = vg.getNav();
ap.bind(vn);
xm.bind(vn);
ap.selectXPath("/*[name()='task']/*[name()='trigger']");
int i=0;
while((i=ap.evalXPath())!=-1){
xm.insertAfterHead(count);
}
xm.output("C:\\Users\\_myPath_\\myFileWithFoo.xml");
System.out.println(vg);
}
这样我就得到了
<trigger count="myCount" interval="myInterval">Foo</trigger>
这不是我的目标,因为我想要的是
<trigger count="Foo" interval="myInterval"/>
2条答案
按热度按时间c0vxltue1#
xpath应该是/task/trigger/@count
change attr value的语句是xmlmodifier.updatetoken(i+1)
下面是一个不使用名称空间的示例。。。
wztqucjr2#
我发现这个解决方案适用于更改“count”和“interval”的内容:
结果是:
我使用了insertattribute方法,它将我的字符串附加到节点(触发器)的名称中。
我知道这是一个可怕的解决方案,但效果很好。