[英]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个“根”元素: id
, parentid
, version
和nodes
。
因此,无法使用期望格式正确的输入的XML解析器进行解析。 恐怕您必须以编程方式或手动将字符串修改为文本。 在<?xml version="1.0" encoding="UTF-8"?>
之后插入开始标记,并在字符串的末尾添加相应的结束标记。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.