JAVA解析XML格式字符串

          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 TestXML {
              public List xmlElements(String xmlDoc) {
                  //創建一個新的字符串
                  StringReader read = new StringReader(xmlDoc);
                  //創建新的輸入源SAX 解析器將使用 InputSource 對象來確定如何讀取 XML 輸入
                  InputSource source = new InputSource(read);
                  //創建一個新的SAXBuilder
                  SAXBuilder sb = new SAXBuilder();
                  try {
                      //通過輸入源構造一個Document
                      Document doc = sb.build(source);
                      //取的根元素
                      Element root = doc.getRootElement();
                      System.out.println(root.getName());//輸出根元素的名稱(測試)
                      //得到根元素所有子元素的集合
                      List jiedian = root.getChildren();
                      //獲得XML中的命名空間(XML中未定義可不寫)
                      Namespace ns = root.getNamespace();
                      Element et = null;
                      for(int i=0;i<jiedian.size();i++){
                          et = (Element) jiedian.get(i);//循環依次得到子元素
                          /**//*
                           * 無命名空間定義時
                           * 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());*/
                          System.out.println(et.getChild("p_id",ns).getText());
                          System.out.println(et.getChild("ctnno",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 自動生成 catch 塊
                      e.printStackTrace();
                  } catch (IOException e) {
                      // TODO 自動生成 catch 塊
                      e.printStackTrace();
                  }
                  return null;
              }
              public static void main(String[] args){
               TestXML doc = new TestXML();
                  String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"+
                  "<Result xmlns=\"           "<row resultcount=\"1\">"+
                        "<users_id>1001     </users_id>"+
                        "<users_name>wangwei   </users_name>"+
                        "<users_group>80        </users_group>"+
                        "<users_address>1001號   </users_address>"+
                     "</row>"+
                     "<row resultcount=\"1\">"+
                        "<users_id>1002     </users_id>"+
                        "<users_name>wangwei   </users_name>"+
                        "<users_group>80        </users_group>"+
                        "<users_address>1002號   </users_address>"+
                     "</row>"+
                  "</Result>";
                  String xml1 = "<?xml version=\"1.0\" encoding=\"UTF-16LE\" standalone=\"no\"?>" +
                    "<d_fsgl_fee_count_for_xml>" +
                    "  <d_fsgl_fee_count_for_xml_row>" +
                    "  <p_id>JD1302130002</p_id>" +
                    "  <ctnno>CXDU1499549</ctnno>" +
                    "  <fee_type>單</fee_type>" +
                    "  <start_time>2013-02-09 00:00:00</start_time>" +
                    "  <end_time>2013-02-13 00:00:00</end_time>" +
                    "  <fee>4</fee>" +
                    "  <fee_count>16</fee_count>" +
                    "  <cpid></cpid>" +
                    "  <fee_name>堆存費</fee_name>" +
                    "  <fee_rate_id></fee_rate_id>" +
                    "  <jffs>1</jffs>" +
                    "  <if_hand>0</if_hand>" +
                    "  <sfid>FDZT1302180104</sfid>" +
                    "  <wt_company>QT</wt_company>" +
                    "  <opid>928</opid>" +
                    "  <cy>D</cy>" +
                    "  <if_bf></if_bf>" +
                    "  <days_count>4</days_count>" +
                    "  <if_collect>1</if_collect>" +
                    "  <if_dd></if_dd>" +
                    "  <dd_fee_name></dd_fee_name>" +
                    "  <spec_sign>五洲代墊</spec_sign>" +
                    " </d_fsgl_fee_count_for_xml_row>" +
                    " <d_fsgl_fee_count_for_xml_row>" +
                    "  <p_id>JD1302130002</p_id>" +
                    "  <ctnno>CXDU1499549</ctnno>" +
                    "  <fee_type>周</fee_type>" +
                    "  <start_time>2013-02-13 00:00:00</start_time>" +
                    "  <end_time>2013-02-20 00:00:00</end_time>" +
                    "  <fee>4</fee>" +
                    "  <fee_count>32</fee_count>" +
                    "  <cpid></cpid>" +
                    "  <fee_name>堆存費</fee_name>" +
                    "  <fee_rate_id>67</fee_rate_id>" +
                    "  <jffs>1</jffs>" +
                    "  <if_hand>0</if_hand>" +
                    "  <sfid>FDZT1302180104</sfid>" +
                    "  <wt_company>QT</wt_company>" +
                    "  <opid>928</opid>" +
                    "  <cy>D</cy>" +
                    "  <if_bf></if_bf>" +
                    "  <days_count>8</days_count>" +
                    "  <if_collect>1</if_collect>" +
                    "  <if_dd></if_dd>" +
                    "  <dd_fee_name></dd_fee_name>" +
                    "  <spec_sign></spec_sign>" +
                    " </d_fsgl_fee_count_for_xml_row>"  +
                    "</d_fsgl_fee_count_for_xml>";
                  doc.xmlElements(xml1);
              }
          }

           

          posted on 2013-04-08 17:20 youngturk 閱讀(284) 評論(0)  編輯  收藏 所屬分類: 幾種文檔解析web.xml解析

          <2013年4月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導航

          統計

          公告

          this year :
          1 jQuery
          2 freemarker
          3 框架結構
          4 口語英語

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          EJB學習

          Flex學習

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 五家渠市| 社旗县| 兴国县| 嘉义县| SHOW| 兖州市| 普兰店市| 湘潭市| 宁强县| 贵州省| 麻江县| 远安县| 常州市| 辽宁省| 奈曼旗| 保山市| 南平市| 文安县| 名山县| 漳浦县| 博湖县| 长宁县| 金山区| 高州市| 长兴县| 班玛县| 福州市| 灵山县| 杂多县| 芮城县| 大田县| 长葛市| 凯里市| 凭祥市| 页游| 通渭县| 客服| 刚察县| 金沙县| 宾川县| 长垣县|