根据我之前提出的问题:How can you save the constant update and the finally save the output as a file with XMLModifier
我之前提到的问题是进行所有更新,最后通过xm.ouput("output.xml");
我知道你提到过:
每个偏移值一次操作:在同一偏移处的两次重复操作将导致异常
示例,我可能是一个我想编辑的路径列表,但我忘记了会有重复。我不会知道,直到出现错误并产生异常。
VTDGen vg = new VTDGen();
vg.parseFile("input.xml", false);
vn.getNav();
AutoPilot ap = new AutoPilot(vn);
XMLModifier xm = new XMLModifier(vn);
public void updateToken(String path, String value)
{
ap.selectPath(path);
.........
xm.updateToken(i,value);
}
public static void main(String args[])
{
updateToken("/a/b/c", "hello");
//updateToken("/a/b", "world");(*ignore)
updateToken("/a/b/c", "john");
}
但是第二次更新有可能吗?通过覆盖,还是有一种方法来检查该点是否正在更新?有什么建议吗?
我有一个像这样的XML文件。
<a>
<b>
<c>value1</c>
</b>
<b>
<c>value2</c>
</b>
</a>
我决定使用第一个updateToken("/a/b/c", "hello")
仅更新第二个C节点 - value2 - &gt;你好
并且下一个updateToken("/a/b/c", "john")
更新两个C节点。我得到的输出是:
<a>
<b>
<c>john</c>
</b>
<b>
<c>hello</c>
</b>
</a>
后来产生了一个异常,我知道在同一个偏移上发生了两个操作。所以我想知道,是否有可能不进行第二次updateToken()
,因为对该偏移量进行了一次更新
就像在开始标记之前搜索更新标记一样,如果没有,那么将会有一些更新......
答案 0 :(得分:0)
如果在偏移值处有多个操作,则UpdateToken应抛出ModifyException。此外,以后的更新不会在XMLModifier中注册,也不会直接推送到输出。总的来说,请考虑捕获modifyException并在代码中处理它以解释操作重叠。