在 java 中创建 xml 时仅在根节点添加命名空间
Add namespace only at root node while creating xml in java
在 java.
中使用 DOM 解析器创建新的 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>
那是我不想 xmlns="" 用于 <data1>
和 <data2>
谢谢
目前遇到同样的问题,我正在使用 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>
在 java.
中使用 DOM 解析器创建新的 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>
那是我不想 xmlns="" 用于 <data1>
和 <data2>
谢谢
目前遇到同样的问题,我正在使用 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>