关于jaxp的sax,dom,程序员2001有一期(记得是蓝面子)讲的比较好,建议看一下.
JB6是集成了JAXP.没有向导.

解决方案 »

  1.   

    <HTML>
    <HEAD>
    <TITLE>JSPㄏノXMLㄒ肈</TITLE>
    </HEAD>
    <BODY>
    <%@ page errorPage="ErrPage.jsp"
             contentType="text/html;charset=Big5" %>
    <%@ page import="java.io.*" %>
    <%@ page import="java.util.Hashtable" %>
    <%@ page import="org.w3c.dom.*" %>
    <%@ page import="org.xml.sax.*" %>
    <%@ page import="javax.xml.parsers.SAXParserFactory" %>
    <%@ page import="javax.xml.parsers.SAXParser" %>
    <%@ page import="SAXHandler" %>
    <%
    File file = new File("../howjsp/item.xml");
    FileReader reader = new FileReader(file);
    Parser parser;
    SAXParserFactory spf = SAXParserFactory.newInstance();
    SAXParser sp = spf.newSAXParser();
    SAXHandler handler = new SAXHandler();
    sp.parse(new InputSource(reader), handler);
    Hashtable cfgTable = handler.getTable();
    out.println("<TABLE><CAPTION>XML ITEM ン</CAPTION>");
    out.println("<TR><TD>ID</TD>" +
      "<TD>" +
      (String)cfgTable.get(new String("ID")) + "</TD></TR>");
    out.println("<TR><TD>DESCRIPTION</TD>" +
      "<TD>" +
      (String)cfgTable.get(new String("DESCRIPTION"))+"</TD></TR>");
    out.println("<TR><TD>PRICE</TD>" +
      "<TD>" +
      (String)cfgTable.get(new String("PRICE")) + "</TD></TR>");
    out.println("<TR><TD>QUANTITY</TD>" +
      "<TD>" +
      (String)cfgTable.get(new String("QUANTITY")) + "</TD></TR>");
    out.println("</TABLE>");
    %>
    </BODY>
    </HTML>_______________________________________
    //==================== SAXHandler.java ======================
    import java.io.*;
    import java.util.Hashtable;
    import org.xml.sax.*;
    public class SAXHandler extends HandlerBase
      {
      private Hashtable table = new Hashtable();
      private String currentElement = null;
      private String currentValue = null;
      public void setTable(Hashtable table)
        {
        this.table = table;
        }
      public Hashtable getTable()
        {
        return table;
        }
      public void startElement(String tag, AttributeList attrs)
      throws SAXException
        {
        currentElement = tag;
        }
      public void characters(char[] ch, int start, int length)
      throws SAXException
        {
        currentValue = new String(ch, start, length);
        }
      public void endElement(String name) throws SAXException
        {
        if (currentElement.equals(name))
          table.put(currentElement, currentValue);
        }
      }_________________________
    //=================== XmlTest.java ===========================
    import java.io.*;
    import java.util.Hashtable;
    import java.util.Enumeration;
    import org.w3c.dom.*;
    import org.xml.sax.*;
    import javax.xml.parsers.SAXParserFactory;
    import javax.xml.parsers.SAXParser;
    public class XmlTest
      {
      public static void main (String argv []) throws IOException
        {
        if (argv.length!=1)
          {
          System.err.println ("USAGE: java XmlTest filename");
          System.exit(1);
          }
        try
          {
          //String xmlResource = "file:" + new File(argv[0]).getAbsolutePath();
          String filename = argv[0];
          File file = new File(filename);
          FileReader reader = new FileReader(file);
          Parser parser;
          SAXParserFactory spf = SAXParserFactory.newInstance();
          SAXParser sp = spf.newSAXParser();
          SAXHandler handler = new SAXHandler();
          sp.parse(new InputSource(reader), handler);
          Hashtable cfgTable = handler.getTable();
          System.out.println("ID == " +
            (String)cfgTable.get(new String("ID")));
          System.out.println("DESCRIPTION == " +
            (String)cfgTable.get(new String("DESCRIPTION")));
          System.out.println("PRICE == " +
            (String)cfgTable.get(new String("PRICE")));
          System.out.println("QUANTITY == " +
            (String)cfgTable.get(new String("QUANTITY")));
          }
        catch (Exception e)
          {
          e.printStackTrace();
          }
        System.exit(0);
        }
      }
      

  2.   

    莫怪我这人挑剔,我想用DOM实现.牢您架!小弟后学末进,望各位兄弟姐妹给予帮助!