在java中向现有XML节点添加新属性?
我想向现有xml节点添加一个属性。我不想向xml文件中添加新元素(新节点),我只想添加一个新属性。我该怎么做
我特别尝试了以下几行代码:
Element process = doc.getElementsById("id");
process.setAttribute("modelgroup", "");
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("C:\\Users\\Blerta\\workspaceKEPLER\\XML_to_JSON\\SampleExample.xml"));
transformer.transform(source, result);
但我有以下例外:
Exception in thread "main" java.lang.NullPointerException
at Main.appendAttributes(Main.java:172)
at Main.displayNodes(Main.java:65)
at Main.displayNodes(Main.java:138)
at Main.main(Main.java:42)**
# 1 楼答案
建议的方法:
情境方法:
只有在您已经知道您处理的所有节点都应该是“Element”类型(因此任何其他情况都是“例外”,应该与代码分离)的情况下,才使用try-catch方法
# 2 楼答案
在DOM解析器中,这非常简单。获取你的节点并简单地使用这个函数
最后更新你的文档。像这样
# 3 楼答案
可以使用xslt在几行中完成。Oracle有一个包含所有代码片段的半正式教程http://docs.oracle.com/javase/tutorial/jaxp/xslt/transformingXML.html
xslt的关键部分如下所示:
# 4 楼答案
最简单也是最短的方法是将节点强制转换为org.w3c.dom.Element,然后在其上调用setAttribute: