Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中写入XML文件_Java_Xml_Parsing - Fatal编程技术网

在Java中写入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=""/>

我有一个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=""/>"
“”
我该怎么做呢


谢谢,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文件的所有元素,并尝试设置属性(“注释”)。但它什么也没用。在我对另一个问题的回答中有一个完全有效的例子:谢谢你的帮助!:现在已经完成了!