我试图用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"
如果在第一个参数
中加上nullrootTreeNode.setAttributeNS(null ,"gp","http://www.pst.com/Protocols/Data/Generic")
我只使用 gp 使用网址而不使用xmlns。
我在这里做错了什么?
感谢!!!
答案 0 :(得分: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);