繁体   English   中英

在Java中将根元素添加到XML

[英]Add root element to XML in Java

我有一个看起来像这样的XML字符串:

<?xml version="1.0" encoding="UTF-8"?>
<id>500404</id>
<parentid>0</parentid>
<version>1</version>
<nodes>
    <id>1015252</id>
    <category>NODE</category>
    <modified>false</modified>
    <X>80</X>
    <Y>30</Y>
</nodes>

我想通过编程添加一个称为“ model”的根节点标签来对其进行修改。 我尝试使用DOM解析字符串,读取所有子节点,然后创建一个新的Document类型的xml doc,其根节点名为“ model”,该节点具有我已经拥有的XML String的所有节点作为子节点。 但这给了我以下例外: 根元素后面的文档中的标记必须格式正确。

到目前为止,我的代码是:

String xmlString = "XML GOES HERE"
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        InputSource inputstream = new InputSource(new StringReader(
                xmlString));
        Document doc = builder.parse(inputstream);
        NodeList nodes = doc.getChildNodes();
                Document doc2 = docBuilder.newDocument();
        Element rootElement = doc2.createElement("model");
        doc2.appendChild(rootElement);
                for (int k = 0; k < nodes.getLength(); k++)
            {
                Node childn = nodes.item(k);
                rootElement.appendChild(childn);
                         }

有什么帮助吗?

只需在<?xml version="1.0" encoding="UTF-8"?></model>之后添加<model>字符串到文件末尾。 我想没有必要解析整个文档来添加根元素。

您的问题是,您的xml字符串格式不正确( 请参阅Wikipedia文章 )。 根元素必须是唯一的。 您有4个“根”元素: idparentidversionnodes

因此,无法使用期望格式正确的输入的XML解析器进行解析。 恐怕您必须以编程方式或手动将字符串修改为文本。 <?xml version="1.0" encoding="UTF-8"?>之后插入开始标记,并在字符串的末尾添加相应的结束标记。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM