2012-03-13 90 views
2

我有一个XML文件,其中包含一个元素,如图所示;以Java编写XML文件

"<Event start="2011.12.12 13:45:00:0000" end="2011.12.12 13:47:00:0000" anon="89"/>" 

我想添加另一个属性“评论”,并将其写入此XML文件给;

"<Event start="2011.12.12 13:45:00:0000" end="2011.12.12 13:47:00:0000" anon="89" comment=""/>" 

我该怎么做呢?

谢谢,马特

+0

有一个在我回答另一个问题工作的完整示例:http://stackoverflow.com/a/9588830/898289 – Adam 2012-03-13 12:37:22

回答

0

使用的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) { 
    } 
} 
+0

感谢您的帮助! :D 现已完成! – user1224534 2012-03-13 12:41:37

+0

最受欢迎:) – 2012-03-13 12:44:02

0

解析文件,添加属性并将其写回到磁盘。

有很多框架可以做到这一点。 Java中的DOM框架可能是您应该关注的第一件事。

+0

我已经解析XML文件中的所有元素,并我试图设置属性(“评论”,“”)。但它什么都不做。 – user1224534 2012-03-13 12:11:29

2
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
factory.setIgnoringElementContentWhitespace(true); 
Document document = factory.newDocumentBuilder().parse(xmlFile); 

Element eventElement = (Element)document.getElementsByTagName("Event").item(0); 
eventElement.setAttribute("comment", ""); 

FYI:我在这里使用DOM框架org.w3c.dom.*

+0

感谢您的帮助! :) – user1224534 2012-03-13 12:41:52

0

正如前面的答案所建议的那样,使用DOM对于这个特殊情况来说当然是合理的这个问题比较简单。

但是,我发现,当您要解析和/或修改XML文件时,JDOM通常更容易使用。其基本方法是将整个文件加载到易于使用的数据结构中。这很好,除非你的XML文件非常大。

欲了解更多信息请访问http://www.jdom.org/