在Java中写入XML文件
我有一个XML文件,其中有一个元素,如图所示在Java中写入XML文件,java,xml,parsing,Java,Xml,Parsing,我有一个XML文件,其中有一个元素,如图所示 "<Event start="2011.12.12 13:45:00:0000" end="2011.12.12 13:47:00:0000" anon="89"/>" “” 我想添加另一个属性“comment”,并将其写入这个XML文件 "<Event start="2011.12.12 13:45:00:0000" end="2011.12.12 13:47:00:0000" anon="89" comment=""/>
"<Event start="2011.12.12 13:45:00:0000" end="2011.12.12 13:47:00:0000" anon="89"/>"
“”
我想添加另一个属性“comment”,并将其写入这个XML文件
"<Event start="2011.12.12 13:45:00:0000" end="2011.12.12 13:47:00:0000" anon="89" comment=""/>"
“”
我该怎么做呢
谢谢,Matt分析文件,添加属性并将其写回磁盘 有很多框架可以做到这一点。Java中的DOM框架可能是您首先应该看到的
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setIgnoringElementContentWhitespace(true);
Document document = factory.newDocumentBuilder().parse(xmlFile);
Element eventElement = (Element)document.getElementsByTagName("Event").item(0);
eventElement.setAttribute("comment", "");
仅供参考:我在这里使用了DOM框架
org.w3c.DOM.*
使用setAttribute方法添加属性
// Add an attribute
element.setAttribute("newAttrName", "attrValue");
使用以下方法写入XML文件
// This method writes a DOM document to a file
public static void writeXmlFile(Document doc, String filename) {
try {
// Prepare the DOM document for writing
Source source = new DOMSource(doc);
// Prepare the output file
File file = new File(filename);
Result result = new StreamResult(file);
// Write the DOM document to the file
Transformer xformer = TransformerFactory.newInstance().newTransformer();
xformer.transform(source, result);
} catch (TransformerConfigurationException e) {
} catch (TransformerException e) {
}
}
正如前面的回答中所建议的,使用DOM对于这个相对简单的特定问题来说当然是合理的 然而,我发现当您想要解析和/或修改XML文件时,JDOM通常更易于使用。其基本方法是将整个文件加载到易于使用的数据结构中。除非您的XML文件非常大,否则这种方法很有效
有关更多信息,请转到我已解析了xml文件的所有元素,并尝试设置属性(“注释”)。但它什么也没用。在我对另一个问题的回答中有一个完全有效的例子:谢谢你的帮助!:现在已经完成了!