使用解析的Java DOM XML中的元素添加新元素

时间:2012-08-23 02:39:07

标签: java xml dom

好的,所以我正在开发一个计算内容的程序,然后获取该数据并将其添加到同一目录中的现有XML文件中。我已经使用DocumentBuilder来解析文件,现在需要(至少这是我认为我需要做的,请纠正我,我错了)从parsered文件中获取一个元素并将appendChild另一个元素添加到它。

到目前为止,这是代码 导入的包:

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamSource;

以及实际解析和编辑XML文件的函数:

public void saveIt(){
        DocumentBuilder bd = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        Document doc = bd.parse("excersize.xml");
        Element root = doc.getElementsByTagName("root");
        Element today = doc.createElement(today);
        root.appendChild(today);
    }

当我尝试编译此代码时,我得到的错误(fyi,这是一个定制的cmd):

Good Luck Sir: javac excersize.java
excersize.java:240: error: incompatible types
                Element root = doc.getElementsByTagName("root");
                                                       ^
  required: Element
  found:    NodeList
excersize.java:241: error: method createElement in interface Document cannot be
applied to given types;
                Element today = doc.createElement(today);
                                   ^
  required: String
  found: Element
  reason: actual argument Element cannot be converted to String by method invoca
tion conversion
2 errors

1 个答案:

答案 0 :(得分:1)

方法doc.getElementsByTagName("root")返回NodeList,因此请更改

Element root = doc.getDocumentElement();