请高手们贴个小例子,小弟学习下

解决方案 »

  1.   

     实例用SAX方式解析XML文件
      仍使用前面实例中的user.xml作为被解析的XML文件,JSP文件位于web应用xml中。JSP页面程式代码如下:
      saxParseUserXML1.jsp
      <%@ page contentType="text/html;charset=GB2312" %>
      <%@ page import="javax.xml.parsers.*,
          org.xml.sax.*,
          org.xml.sax.helpers.*,
          org.xml.sax.helpers.DefaultHandler,
          java.io.*"%>  <html>
        <head><title>用SAX解析并遍历user.xml</title></head>
        <body>
      <%!
      static class SAXParseUser extends DefaultHandler{
     StringBuffer tempString=new StringBuffer();
     //文件解析开始
     public void startDocument() throws SAXException {
      tempString.append("开始解析xml文件......<br>");
     }
     //标签解析开始
     public void startElement(String namespaceURI, String localName,String qName, Attributes atts) throws SAXException{
     tempString.append("开始解析结点,结点名称:"+qName+"<br>");
      //解析得到标签所有的属性
      for(int i=0;i<atts.getLength();i++){
      tempString.append("&nbsp;&nbsp;属性"+atts.getQName(i)+",值为:"+atts. getValue(i)+"<br>");  
      }
     }
     //标签解析结束
     public void endElement(String namespaceURI,String localName,String qName) throws SAXException{
     tempString.append("解析结点结束,结点名称:"+qName+"<br>");
     }
     //字符串解析
     public void characters(char[] ch,int start,int length){
      tempString.append("&nbsp;&nbsp;解析出字符串,值为:’"+(new String(ch,start, length))+"’<br>"); 
     }
     //文件解析结束
     public void endDocument() throws SAXException {
      tempString.append("解析xml文件结束!<br>");
     }
     //得到解析结果
     public StringBuffer getPrintXML(){
      return tempString;
     }
      }
      %>
      <% //生成SAX解析器工厂
     SAXParserFactory spf = SAXParserFactory.newInstance();
     XMLReader xmlReader = null;
     SAXParser saxParser=null;
     SAXParseUser saxParseUser=new SAXParseUser();
     String filename=pageContext.getServletContext().getRealPath("/user.xml");
     try {
      // 创建一个解析器SAXParser对象
      saxParser = spf.newSAXParser();
      // 得到SAXParser中封装的SAX XMLReader
      xmlReader = saxParser.getXMLReader();
      //设置解析时处理事件的对象
      xmlReader.setContentHandler(saxParseUser);
      //开始解析XML文件
      xmlReader.parse(filename);
     }catch (Exception ex) {
      System.out.println(ex);
     }
     //输出解析结果
     out.println(saxParseUser.getPrintXML()); 
      %>  
       </body>
      </html>  该程式声明了一个类SAXParseUser,用于声明处理解析user.xml时,触发事件调用的相应方法,在实际工程应用中可把类的声明作为JavaBean,而不直接写在JSP页面中。解析前先要实例化一个SAX解析工厂对象,并用此对象生成一个SAX解析器,再用解析器得到xmlReader对象,用此方法来解析XML文件。
    该程式的运行结果如图11-9所示。
      

  2.   

    C#的话,如果想顺序而非随机方式读写XML,可以用XmlReader和XmlWriter,MSDN中有说明和示例。
      

  3.   

    看看这个帖子是不是能够帮助你http://topic.csdn.net/t/20040109/18/2650543.html