微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java JDOM2 XML 向现有子项添加元素

如何解决Java JDOM2 XML 向现有子项添加元素

我正在尝试在现有 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,也没有收到任何错误消息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?