SAX的解吸模式和DOM不同,不是解吸者主动的,
而是被动的形式,实现你要根据XML文档结构设计好解吸器
然后顺序一次解吸完,解吸途中保存你要的信息至于子结点要用状态机来判断读取

解决方案 »

  1.   

    NO,you could not do that!
      

  2.   


    thanks, to Alain_Delone(阿龙) ,
    能具体一些么?
      

  3.   

    用jdom处里是最好的.例子:package jdomtest;import org.jdom.*;
    import org.jdom.output.*;
    import org.jdom.input.*;
    import java.io.*;public class jdomtest{
        public static void main(String args[])throws Exception{        SAXBuilder sb = new SAXBuilder();        //从文件构造一个Document,因为XML文件中已经指定了编码,所以这里不必了
            Document doc = sb.build(new FileInputStream("exampleA.xml"));        Element root = doc.getRootElement(); //得到根元素
            java.util.List books = root.getChildren(); //得到根元素所有子元素的集合
            Element book = (Element)books.get(0); //得到第一个book元素
            Element author = book.getChild("author"); //得到指定的字元素
            author.setText("mhj"); //将作者改为mhj
            //或 Text t = new Text("王五");book.addContent(t);
            Element price = book.getChild("price"); //得到指定的字元素        System.out.println(price.getText() );//得到值
            //修改价格,比较郁闷的是我们必须自己转换数据类型,而这正是JAXB的优势
            price.setText(Float.toString(50.0f));        String indent = "";
            boolean newLines = false;
            XMLOutputter outp = new XMLOutputter(indent,newLines,"GBK");
            outp.output(doc, new FileOutputStream("exampleB.xml"));    }
    };<?xml version="1.0" encoding="GBK"?>
    <bookList>
        <book>
            <name>Java编程入门</name>
            <author>张三</author>
            <publishDate>2002-6-6</publishDate>
            <price>35.0</price>
        </book>
        <book>
            <name>XML在Java中的应用</name>
            <author>李四</author>
            <publishDate>2002-9-16</publishDate>
            <price>92.0</price>
        </book>
    </bookList>
      

  4.   

    如果不知道Child Element的名字怎么得到Element?