Java 通过VTD-XML将多个元素写入XML

Java 通过VTD-XML将多个元素写入XML,java,xml,vtd-xml,Java,Xml,Vtd Xml,我想在一个父级中编写几个元素,我有以下代码: public void writeElement(String parent, String element, String content) { try { xmlModifier.bind(vtdNav); vtdNav.toElement(VTDNav.FC, parent); xmlModifier.insertAfterHead("<" + element + ">" +

我想在一个父级中编写几个元素,我有以下代码:

public void writeElement(String parent, String element, String content) {
    try {
        xmlModifier.bind(vtdNav);
        vtdNav.toElement(VTDNav.FC, parent);
        xmlModifier.insertAfterHead("<" + element + ">" + content + "</" + element + ">");
        xmlModifier.output(filepath);
    } catch (ModifyException | NavException | IOException | TranscodeException e) {
        e.printStackTrace(); 
    }
}
但结果是:

<db>
<patient>
<surname></surname>
<name></name>
...
</patient>
</db>
我只有这个:

<db>
<patient>
<comments></comments>
</patient>
</db>

看起来writeElement每次都重写相同的元素。发生这种情况的原因以及如何修复它?

因为每次修改都会输出一个XML文件。如果希望一次完成所有修改,则不应每次调用XMLModifier的输出。

尝试排除XMLModifier.bindvtdNav;从writeElement并将其移动到类构造函数中。现在我有com.ximpleware.ModifyException:每个偏移量异常只能有一个插入。那是什么?是的,vtd在修改方面与Dom不同。您应该为每个偏移量值插入一个单字节数组。这意味着您必须在代码中执行文本concatnatio,然后在元素后面插入所有内容。
<db>
<patient>
<comments></comments>
</patient>
</db>