java - 如何使用 DOM 解析器在此 XML 文件中添加元素?

标签 java javascript xml parsing dom

我想知道如何修改这个 XML 文件,

<?xml version="1.0"?>
<nombre>
    <id>12345</id>
</nombre>

使用 Java 中的 DOM 解析器将其转换成这样的 XML 文件,

<?xml version="1.0" encoding="UTF-8" ?>
    <heat>2013-09-09</heat>
    <nombre>
      <id>12345</id>
    </nombre>

我已经尝试过,但不起作用,

public class Test {

public static final String xmlFilePath = "src/vnx.xml";
public static final String xml2FilePath = "src/input2.xml";

public static void main(String argv[]) {

    try {

        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        Document document = documentBuilder.parse(xmlFilePath);

        Element version = document.createElement("heat");
        version.appendChild(document.createTextNode("2013-09-09"));
        document.appendChild(version);



        TransformerFactory transformerFactory = TransformerFactory.newInstance();

        Transformer transformer = transformerFactory.newTransformer();
        DOMSource domSource = new DOMSource(document);

        StreamResult streamResult = new StreamResult(new File(xml2FilePath));
        transformer.transform(domSource, streamResult);


    } catch (ParserConfigurationException pce) {
        pce.printStackTrace();
    } catch (TransformerException tfe) {
        tfe.printStackTrace();
    } catch (IOException ioe) {
        ioe.printStackTrace();
    } catch (SAXException sae) {
        sae.printStackTrace();
    }
}

}

它返回一个解析错误。任何建议都会非常有帮助。非常感谢!

最佳答案

尝试此代码,我使用 Xpath 导航 XML 并创建了新节点并附加到 XML。

或者没有 XPATH 你也可以做到。 以下代码没有Xpath。Xpath代码在注释中

 try {
    File inputFile = new File("src/vnx.xml");
    DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    // creating input stream
    Document doc = builder.parse(inputFile );

    //Xpath compiler
    //XPathFactory xpf = XPathFactory.newInstance();
    // XPath xpath = xpf.newXPath();

    //XPath Query
   // XPathExpression expr = xpath.compile("/");
    //Node attributeElement = (Node) expr.evaluate(doc, XPathConstants.NODE);

    //New Node          
    Node childnode=doc.createElement("heat");        
    doc .appendChild(childnode);
    childnode.setTextContent("12-34-56");

    // writing xml file
    TransformerFactory transformerFactory = TransformerFactory.newInstance();
    Transformer transformer = transformerFactory.newTransformer();
    DOMSource source = new DOMSource(doc);
     File outputFile = new File("src/input2.xml");
    StreamResult result = new StreamResult(outputFile );
    // creating output stream
    transformer.transform(source, result);
    } catch (Exception e) {
        e.printStackTrace();
    }

如果找不到文件,请检查 XML 文件的路径 谢谢

关于java - 如何使用 DOM 解析器在此 XML 文件中添加元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20984323/

相关文章:

Java:获取 ENUM 元素的数组

Java - 按通用长度和前缀从字符串中提取文本

javascript - 当数据库中存在新行时自动更新 div

xml - eclipse xml 编辑器为空格插入制表符

java - 以编程方式添加的 View 寻呼机不显示

java - 绕过类型删除 : problem with trait type!

java - 如何为应用程序设置图标图像?

javascript - Extjs 4新线

javascript - 在检查了几个问题的多个复选框后如何停止检查复选框

xml - 使用 Powershell 将 XML 文件远程保存到服务器