如题,本人初学,自己依样画葫芦写的程序老是出错。所以在这里求一个写入和删除结点的例子,谢谢各位哥哥姐姐。

解决方案 »

  1.   

    忘说了,我用的是java自带的,不是第三方的。
      

  2.   

    下面是XML文件读写的例子,删除NODE我也不懂.希望能给你提供点帮助.
    package XMLTest;import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Properties;
    import java.util.Vector;import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;import org.w3c.dom.DOMException;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NodeList;
    import org.w3c.dom.Text;//为了保存多个学生信息,还得借助一个集合类(并不是单纯意义上的集合,JAVA中的集合是集合框架的概念,包含向量、列表、哈希表等),
    //这里采用Vector向量类。定义在XMLTest测试类中,命名为student_Vector。然后定义两个方法readXMLFile和writeXMLFile,实现读写操作。代码如下:public class XMLTest { Vector student_Vector; private void readXMLFile(String inFile) throws Exception {
    // 建立一个解析器工厂DocumentBuilderFactory,以利用这个工厂来获得一个具体的解析器对象DocumentBuilder
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = null;
    try {
    db = dbf.newDocumentBuilder();
    } catch (ParserConfigurationException pce) {
    System.err.println(pce);
    // 出异常时输出异常信息,然后退出,下同
    System.exit(1);
    }
    Document doc = null;
    try {
    doc = db.parse(inFile);
    } catch (DOMException dom) {
    System.err.println(dom.getMessage());
    System.exit(1);
    } catch (IOException ioe) {
    System.err.println(ioe);
    System.exit(1);
    }
    // 下面是解析XML的全过程,
    // 比较简单,先取根元素"students"
    Element root = doc.getDocumentElement();
    // 取"学生"元素列表
    NodeList students = root.getElementsByTagName("student");
    for (int i = 0; i < students.getLength(); i++) {
    // 依次取每个"学生"元素
    Element student = (Element) students.item(i);
    // 创建一个学生的Bean实例
    StudentBean studentBean = new StudentBean();
    // 取学生的性别属性
    studentBean.setSex(student.getAttribute("sex"));
    // 取"姓名"元素,下面类同 System.out.println(student.getAttribute("sex")); NodeList names = student.getElementsByTagName("name");
    if (names.getLength() == 1) {
    Element e = (Element) names.item(0);
    Text t = (Text) e.getFirstChild();
    studentBean.setName(t.getNodeValue());
    System.out.println(t.getNodeValue());
    } NodeList ages = student.getElementsByTagName("age");
    if (ages.getLength() == 1) {
    Element e = (Element) ages.item(0);
    Text t = (Text) e.getFirstChild();
    studentBean.setAge(Integer.parseInt(t.getNodeValue()));
    System.out.println(t.getNodeValue());
    } NodeList phones = student.getElementsByTagName("phonenumber");
    if (phones.getLength() == 1) {
    Element e = (Element) phones.item(0);
    Text t = (Text) e.getFirstChild();
    studentBean.setPhone(t.getNodeValue());
    System.out.println(t.getNodeValue());
    } student_Vector.add(studentBean);
    }
    } private void writeXMLFile(String outFile) throws Exception {
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = null;
    try {
    db = dbf.newDocumentBuilder();
    } catch (ParserConfigurationException pce) {
    System.err.print(pce);
    System.exit(1);
    }
    Document doc = null;
    doc = db.newDocument();
    Element root = doc.createElement("students");
    doc.appendChild(root);
    for (int i = 0; i < student_Vector.size(); i++) {
    StudentBean studentBean = (StudentBean) student_Vector.get(i);
    Element student = doc.createElement("student");
    student.setAttribute("sex", studentBean.getSex());
    root.appendChild(student); Element name = doc.createElement("name");
    student.appendChild(name);
    Text tName = doc.createTextNode(studentBean.getName());
    name.appendChild(tName); Element age = doc.createElement("age");
    student.appendChild(age);
    Text tAge = doc
    .createTextNode(String.valueOf(studentBean.getAge()));
    age.appendChild(tAge); Element phone = doc.createElement("phonenumber");
    student.appendChild(phone);
    Text tPhone = doc.createTextNode(studentBean.getPhone());
    phone.appendChild(tPhone);
    }
    // 这个document就是xml文档对像模型吗???
    // 如果我在Servlet里调用函数返回这个document是不是意味着调用了xml呀?
    // String name = outFile;
    DOMSource doms = new DOMSource(doc); // File file = new File(outFile.toString());
    // StreamResult result = new StreamResult(file);
    // 上述方法不可行 StreamResult result = new StreamResult(new FileOutputStream(outFile
    .toString())); // TransformerFactory tf = TransformerFactory.newInstance();
    // Transformer transformer = tf.newTransformer();
    Transformer transformer = TransformerFactory.newInstance()
    .newTransformer();
    Properties properties = transformer.getOutputProperties();
    properties.setProperty(OutputKeys.ENCODING, "GB2312");
    properties.setProperty(OutputKeys.METHOD, "xml");
    properties.setProperty(OutputKeys.INDENT, "yes");
    transformer.setOutputProperties(properties);
    transformer.transform(doms, result);
    } public static void main(String[] args) throws Exception {
    System.out.println(System.getProperty("user.dir")); XMLTest xmlTest = new XMLTest();
    xmlTest.student_Vector = new Vector(); System.out.println("开始读student.xml文件");
    xmlTest.readXMLFile("XMLTest\\student.xml"); StudentBean s1 = new StudentBean();
    StudentBean s2 = new StudentBean();
    s1.setAge(11);
    s1.setName("jinsanqi");
    s1.setPhone("7451245");
    s1.setSex("F");
    xmlTest.student_Vector.addElement(s1);
    s2.setAge(12);
    s2.setName("xiaobao");
    s2.setPhone("88846");
    s2.setSex("M");
    xmlTest.student_Vector.addElement(s2);
    System.out.println("开始写Output.xml文件");
    xmlTest.writeXMLFile("XMLTest\\student_back.xml");
    System.out.println("写入完成");
    }
    }
    这里增加的时候可能需要构建一个JAVABEAN.
      

  3.   

    这是dom的,一般都用jdom或者还有一种(忘了叫什么了)。