Java JDOM2 XML将元素添加到现有子元素

Java JDOM2 XML将元素添加到现有子元素,java,xml,xml-parsing,jdom-2,Java,Xml,Xml Parsing,Jdom 2,我试图在现有XML文档中的某个位置插入一个新的子对象。为此,我首先解析了现有的XML文档,现在想编辑并保存它 在我使用的进口产品中 import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.jdom2.Element; import org.

我试图在现有XML文档中的某个位置插入一个新的子对象。为此,我首先解析了现有的XML文档,现在想编辑并保存它

在我使用的进口产品中

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.jdom2.Element;
import org.jdom2.Document;
import org.jdom2.Namespace;
import org.jdom2.input.DOMBuilder;
import org.jdom2.output.DOMOutputter;
这就是我解析文件并将其转换为jdom2格式的方法

DocumentBuilder builder = null;
org.jdom2.input.DOMBuilder jdomBuilder = new DOMBuilder();
Document tmpDoc = jdomBuilder.build( builder.parse(new FileInputStream(tmpFilePath)));
这就是我试图编辑和保存文件的方式

    Document tmpDoc = archivedFiles.get(id);
    Element eleWithTracking = (Element) new Element("TRACKING_ID").addContent(idAndTracking.get(id));
    
    Element root = (Element) tmpDoc.getRootElement();
    Element header = (Element) root.getChild("ORDER_HEADER", Namespace.getNamespace("http://www.opentrans.org/XMLSchema/2.1"));

    header.addContent(eleWithTracking);
    tmpDoc.setContent(root);

    try {
        //Create the XML
        XMLOutputter outter=new XMLOutputter();
        outter.setFormat(Format.getPrettyFormat());
        outter.output(tmpDoc, new FileWriter(new File(id + "_withTracking.xml")));            
    } catch (IOException ex) {
        Logger.getLogger(Reverse_nes.class.getName()).log(Level.SEVERE, null, ex);
    }
但是,我在输出文件的任何位置都找不到刚才插入的子项(eleWithTracking)

此外,输出文件的格式与源文件的格式不同。我没有任何可以展开的节点,只有纯文本

不幸的是,我对Java还不太了解,也没有收到任何错误消息。

代码在我看来还行(尽管您所展示的内容不完整,所以我不得不做出一些有根据的猜测)。当我运行我的代码版本时,它会创建一个包含新
元素的新XML文件。请您的问题提供一个-其中应包括(1)一些示例输入数据,(2)可运行代码,(3)实际输出数据,(4)预期输出数据。