org.w3c.dom
sax
digest
呵呵。例子网上很多的

解决方案 »

  1.   

    DOM解析:
    import java.io.File;import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Document;
    import org.w3c.dom.NodeList;public class ParseByDom {

    public void parseXMLByDom(String filePath){
    try {
    File file = new File(filePath);
    System.out.println(file.exists());
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    Document dom = db.parse(file);

    NodeList servlet = dom.getElementsByTagName("servlet");
    System.out.println(servlet.item(0).getNodeName());

    NodeList s1 = servlet.item(0).getChildNodes(); System.out.println(s1.item(1).getNodeName());

    System.out.println(s1.item(1).getFirstChild().getNodeName());

    NodeList servletName = dom.getElementsByTagName("servlet-name");
    System.out.println(servletName.getLength());
    NodeList sn = servletName.item(0).getChildNodes();
    System.out.println(sn.item(0).getNodeValue());


    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    } /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    ParseByDom pd = new ParseByDom();
    //解析test.xml
    pd.parseXMLByDom("test.xml");
    }}
      

  2.   

    SAX解析:import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;public class ParseBySax { /**
     * @param args
     */
    public static void main(String[] args) {
    try {
    SAXParserFactory spf = SAXParserFactory.newInstance();
    SAXParser sp = spf.newSAXParser();
    sp.parse("test.xml", new SAXParserHander());


    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();

    }}class SAXParserHander extends DefaultHandler{

    //文档开始事件
    public void startDocument() throws SAXException{
    System.out.println("文档开始==");
    }

    //文档结束事件
    public void endDocument() throws SAXException{
    System.out.println("文档结束==");
    }

    public void characters(char[] ch,int start ,int length) throws SAXException{
    String chs = new String (ch,start,length);
    System.out.println(chs);
    }

    public void startElement(String namespaceURL,String localName,String qName,
    Attributes atts)throws SAXException{
    System.out.println("开始元素:" + qName +"==");
    }

    public void endElement(String namespaceURL,String localName,String qName
    )throws SAXException{
    System.out.println("结束元素:" + qName +"==");
    }
    }
      

  3.   

    请问这个路径filePath  怎么样写成相对路径阿?
    比如说我想使用web-inf文件夹中的web.xml
      

  4.   

    前面一个是filePath,后面又是文件名,到底啥子回事昵?
      

  5.   

    wj_526()  有什么问题吗???filePath = C:\\……\\web-inf\\web.xml我现在是想获得相对路径
      

  6.   

    个人推荐 apache  的 digest 比较好,很多开源项目的XML解析都是用的这个
      

  7.   

    dom4j網上很多這方面的資料。
      

  8.   

    package org.forus.logic;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;/** 此类是连接数据库(XML文件)类, 使用了StelsXML JDBC Driver */
    public class DBConn
    {
    private Connection conn = null;
    private Statement stmt = null; /** 构造函数 */
    public DBConn()
    {
    try
    {
    Class.forName("jstels.jdbc.xml.XMLDriver");
    this.conn = DriverManager
    .getConnection("jdbc:jstels:xml:schemaClass.xml");
    this.stmt = conn.createStatement();
    }
    catch (Exception e)
    {
    e.printStackTrace();
    }
    } /** 尝试执行SQL语句 */
    public boolean execute(String sql)
    {
    try
    {
    return this.stmt.execute(sql);
    }
    catch (SQLException e)
    {
    e.printStackTrace();
    return false;
    }
    } /** 尝试执行SQL语句,并返回一个结果集对象 */
    public ResultSet executeQuery(String sql)
    {
    try
    {
    return this.stmt.executeQuery(sql);
    }
    catch (SQLException e)
    {
    e.printStackTrace();
    return null;
    }
    } /** 关闭连接数据库 */
    public void close()
    {
    try
    {
    this.conn.close();
    }
    catch (SQLException e)
    {
    System.out.println("连接关闭事发生错误!");
    e.printStackTrace();
    }
    }
    }