在java中使用DOM Parser创建新XML时,如何仅在根节点添加命名空间。
预期输出是这样的:
<root xmlns = "http://www.mynamespace.com/something/something">
<data1>
<parameter>
<name>test string</name>
<value>test string</value>
</parameter>
<parameter>
<name>test string</name>
<value>test string</value>
</parameter>
</data1>
<data2>
<parameter>
<name>test string</name>
<value>test string</value>
</parameter>
<parameter>
<name>test string</name>
<value>test string</value>
</parameter>
</data2></root>
我的代码是这样的:
Namespace ns = Namespace.getNamespace("http://www.mynamespace.com/something/something");
Element root = new Element("root",ns);
Document doc = new Document(root);
doc.setRootElement(root);
我出去了:
<root xmlns="http://www.mynamespace.com/something/something">
<data1 xmlns="">
<parameter>
<name>test string</name>
<value>test string</value>
</parameter>
<parameter>
<name>test string</name>
<value>test string</value>
</parameter>
</data1>
<data2 xmlns="">
<parameter>
<name>test string</name>
<value>test string</value>
</parameter>
<parameter>
<name>test string</name>
<value>test string</value>
</parameter>
</data> </root>
对于<data1>
和<data2>
由于
答案 0 :(得分:0)
目前正面临同样的问题,我正在使用XOM解析器
Element root = new Element("organization", "http://schemas.test");
Document document = new Document(root);
Element element = new Element("Email");
element.appendChild("test@test.com");
root.appendChild(element);
System.out.print(document.toXML());
输出
<?xml version="1.0"?>
<organization xmlns="http://schemas.test">
<Email xmlns="">test@test.com</Email>
</organization>
即使我希望命名空间只存在于根元素组织中。 为此,将应用于根元素的相同名称空间应用于子元素。因此,它们将与根目录位于相同的名称空间中。
Element root = new Element("organization", "http://schemas.test");
Document document = new Document(root);
Element element = new Element("Email","http://schemas.test");
element.appendChild("test@test.com");
root.appendChild(element);
System.out.print(document.toXML());
这将生成xml如下,只有具有命名空间的根元素 -
<?xml version="1.0"?>
<organization xmlns="http://schemas.test">
<Email>test@test.com</Email>
</organization>