大魚(yú)

          JDOM解析XML字符串(非XML文檔)

          package com;

          import java.io.IOException;
          import java.io.StringReader;
          import java.util.List;

          import org.jdom.Document;
          import org.jdom.Element;
          import org.jdom.JDOMException;
          import org.jdom.Namespace;
          import org.jdom.input.SAXBuilder;
          import org.xml.sax.InputSource;


          public class DuXMLDoc {
              public List xmlElements(String xmlDoc) {
                  //創(chuàng)建一個(gè)新的字符串
                  StringReader read = new StringReader(xmlDoc);
                  //創(chuàng)建新的輸入源SAX 解析器將使用 InputSource 對(duì)象來(lái)確定如何讀取 XML 輸入
                  InputSource source = new InputSource(read);
                  //創(chuàng)建一個(gè)新的SAXBuilder
                  SAXBuilder sb = new SAXBuilder();
                  try {
                      //通過(guò)輸入源構(gòu)造一個(gè)Document
                      Document doc = sb.build(source);
                      //取的根元素
                      Element root = doc.getRootElement();
                      System.out.println(root.getName());//輸出根元素的名稱(測(cè)試)
                      //得到根元素所有子元素的集合
                      List jiedian = root.getChildren();
                      //獲得XML中的命名空間(XML中未定義可不寫(xiě))
                      Namespace ns = root.getNamespace();
                      Element et = null;
                      for(int i=0;i<jiedian.size();i++){
                          et = (Element) jiedian.get(i);//循環(huán)依次得到子元素
                          /**//*
                           * 無(wú)命名空間定義時(shí)
                           * et.getChild("users_id").getText();
                           * et.getChild("users_address",ns).getText()
                           */
                          System.out.println(et.getChild("users_id",ns).getText());
                          System.out.println(et.getChild("users_address",ns).getText());
                      }
                      /**//*
                       * 如要取<row>下的子元素的名稱
                       */
                      et = (Element) jiedian.get(0);
                      List zjiedian = et.getChildren();
                      for(int j=0;j<zjiedian.size();j++){
                          Element xet = (Element) zjiedian.get(j);
                          System.out.println(xet.getName());
                      }
                  } catch (JDOMException e) {
                      // TODO 自動(dòng)生成 catch 塊
                      e.printStackTrace();
                  } catch (IOException e) {
                      // TODO 自動(dòng)生成 catch 塊
                      e.printStackTrace();
                  }
                  return null;
              }
              public static void main(String[] args){
                  DuXMLDoc doc = new DuXMLDoc();
                  String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"+
                  "<Result xmlns=\"http://www.fiorano.com/fesb/activity/DBQueryOnInput2/Out\">"+
                     "<row resultcount=\"1\">"+
                        "<users_id>1001     </users_id>"+
                        "<users_name>wangwei   </users_name>"+
                        "<users_group>80        </users_group>"+
                        "<users_address>1001號(hào)   </users_address>"+
                     "</row>"+
                     "<row resultcount=\"1\">"+
                        "<users_id>1002     </users_id>"+
                        "<users_name>wangwei   </users_name>"+
                        "<users_group>80        </users_group>"+
                        "<users_address>1002號(hào)   </users_address>"+
                     "</row>"+
                  "</Result>";
                  doc.xmlElements(xml);
              }
          }

          posted on 2010-02-23 14:25 大魚(yú) 閱讀(277) 評(píng)論(0)  編輯  收藏 所屬分類: j2se

          主站蜘蛛池模板: 福州市| 阿克| 北安市| 汉沽区| 凌云县| 庄河市| 当雄县| 鄯善县| 阜新市| 石门县| 和平县| 贡嘎县| 博客| 陈巴尔虎旗| 康定县| 秀山| 惠水县| 金乡县| 邹城市| 泽州县| 息烽县| 高唐县| 呼和浩特市| 南澳县| 长子县| 固原市| 三门峡市| 湘潭市| 桃园县| 韶关市| 曲水县| 阿尔山市| 玉林市| 门头沟区| 鹿邑县| 揭西县| 台江县| 镇远县| 色达县| 九龙坡区| 白水县|