Java 如何使用XMLModifier保存持续更新和最终将输出保存为文件
我有不同的方法尝试根据路径更新/删除元素/令牌 现在,每个方法在编辑完成后,都会立即保存为文件Java 如何使用XMLModifier保存持续更新和最终将输出保存为文件,java,xml,vtd-xml,Java,Xml,Vtd Xml,我有不同的方法尝试根据路径更新/删除元素/令牌 现在,每个方法在编辑完成后,都会立即保存为文件 VTDGen vg = new VTDGen(); vg.parseFile("input.xml", false); vn.getNav(); AutoPilot ap = new AutoPilot(vn); XMLModifier xm; public void updateToken(String path) { xm = new XMLModifier(vn); ap
VTDGen vg = new VTDGen();
vg.parseFile("input.xml", false);
vn.getNav();
AutoPilot ap = new AutoPilot(vn);
XMLModifier xm;
public void updateToken(String path)
{
xm = new XMLModifier(vn);
ap.selectXPath(path);
......
xm.updateToken(i,"hello");
......
xm.output("output.xml");
}
如果我继续调用这个方法,它会保存,但是它会用新的更改覆盖文件,我不希望这样,那么我该怎么做呢
我也尝试过使用
xm.outputAndReparse();
在这里,我将更新保存回NTDNav vn
,并重用其余的方法,但它会破坏方法向节点的其余移动(使用自动驾驶仪)
我想要的是:根据路径调用方法更新令牌,保存更新,然后使用另一个路径再次调用该方法,最后在完成更新后,保存到文件中
如果我有任何错误,请务必告诉我,因为我对VTD-XML还是新手。谢谢
让它工作,这就是我所做的
VTDGen vg = new VTDGen();
vg.parseFile("input.xml", false);
vn.getNav();
AutoPilot ap = new AutoPilot(vn);
XMLModifier xm = new XMLModifier(vn);
public void output()
{
....
xm.output("output.xml");
....
}
public void updateToken(String path)
{
ap.selectPath(path);
.........
xm.updateToken(i,"hello");
}
XMLModifier是实现VTD-XML独特增量更新功能的方法集合 要更新XML的内容,首先必须将VTDNav的实例附加到XMLModifier对象。有三种类型的操作可应用于XML文档:删除、插入和更新(同时删除和插入) XMLModier最重要的概念是
至于outputAndParse()的目的,基本上是为了减少输出新文档然后立即对其进行解析的编码工作。但是这个方法有一个缺点,因为它调用起来比较慢/沉重。所以要谨慎地使用它。如果您试图对文档内容应用多批更改,请在调用outputAndParse()之前立即执行所有更改。XMLModifier是实现VTD-XML独特增量更新功能的方法集合 要更新XML的内容,首先必须将VTDNav的实例附加到XMLModifier对象。有三种类型的操作可应用于XML文档:删除、插入和更新(同时删除和插入) XMLModier最重要的概念是
至于outputAndParse()的目的,基本上是为了减少输出新文档然后立即对其进行解析的编码工作。但是这个方法有一个缺点,因为它调用起来比较慢/沉重。所以要谨慎地使用它。如果您试图对文档内容应用多批更改,请在调用outputAndParse()之前立即执行所有操作。是否尝试将每个更新保存到单独的文件中(每个xpath一个output.xml)?或者,是否尝试将每个基于路径的更新应用于同一个文件,并将所有更新聚合到一个输出中?@vtd xml author第二个选项。示例-如果我有两个要更新的路径,我调用第一个方法,返回更新的版本,然后去更新第二个路径,然后一旦完成,所有输出都将在单个文件上。简短的回答是:从updateToken方法中取出“xm.output()”并放入主方法,然后在调用所有updateToken方法之后。。作为对您问题的正式回答,我将写一个更详细的描述……您是否试图将每个更新保存到一个单独的文件中(每个xpath一个output.xml)?或者,是否尝试将每个基于路径的更新应用于同一个文件,并将所有更新聚合到一个输出中?@vtd xml author第二个选项。示例-如果我有两个要更新的路径,我调用第一个方法,返回更新的版本,然后去更新第二个路径,然后一旦完成,所有输出都将在单个文件上。简短的回答是:从updateToken方法中取出“xm.output()”并放入主方法,然后在调用所有updateToken方法之后。。我将写一个更详细的描述作为对y的正式回应