我的输出xml文档中有一个没有属性的根元素:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
..
</root>
我需要它看起来像这样:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="my.xsd">
....
</root>
我无法弄清楚如何使用java DOM API正确执行此操作。
谢谢!
答案 0 :(得分:7)
使用NS
方法。在这种情况下,名称空间为http://www.w3.org/2001/XMLSchema-instance
。
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = factory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element root = doc.createElement("root");
root.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance",
"xsi:noNamespaceSchemaLocation", "my.xsd");
root.appendChild(doc.createElement("foo"));
doc.appendChild(root);
// see result
DOMImplementationLS dls = (DOMImplementationLS) doc.getImplementation();
System.out.println(dls.createLSSerializer().writeToString(doc));