0

我尝试使用 DOM APi 创建 XML 文档,当我使用以下代码时,我得到了预期的结果

Element rootTreeNode = document.createElementNS("http://schemas.microsoft.com/ado/2007","ex" + ":Ex")

这是输出控制台中带有标签的输出

 ex:Ex Version="1.0" xmlns:ex="http://schemas.microsoft.com/ado/2007"/

现在我想在这个元素中添加以下内容

**xmlns:gp**="http://www.pst.com/Protocols/Data/Generic"

而且我没有成功使用xmlns:gp 我尝试使用以下类似

rootTreeNode.setAttributeNS("xmlns" ,"gp","http://www.pst.com/Protocols/Data/Generic")

我得到了它,就像下面这样

**xmlns:ns0="xmlns"** **ns0:gp**="http://www.pst.com/Protocols/Data/Generic"

如果在第一个参数中放入 null

rootTreeNode.setAttributeNS(null ,"gp","http://www.pst.com/Protocols/Data/Generic")

我只得到带有URL的gp而没有 xmlns 。

我在这里做错了什么?

谢谢!!!

4

1 回答 1

1

完整测试:

DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dbfac.newDocumentBuilder();

Document doc = docBuilder.newDocument();

Element root = doc.createElementNS("http://schemas.microsoft.com/ado/2007","ex" + ":Ex");
root.setAttributeNS("http://www.w3.org/2000/xmlns/" ,"xmlns:gp","http://www.pst.com/Protocols/Data/Generic");

doc.appendChild(root);

TransformerFactory transfac = TransformerFactory.newInstance();
Transformer trans = transfac.newTransformer();
trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
trans.setOutputProperty(OutputKeys.INDENT, "yes");

StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);
DOMSource source = new DOMSource(doc);
trans.transform(source, result);
String xmlString = sw.toString();

System.out.println("Xml:\n\n" + xmlString);
于 2012-10-17T13:19:50.293 回答