<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    竹里館→憶童年

    獨坐幽篁里,彈琴復長嘯;深林人不知,明月來相照
    posts - 9, comments - 23, trackbacks - 0, articles - 0
       :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理

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

    Posted on 2007-07-20 13:13 憶童年 閱讀(7432) 評論(4)  編輯  收藏 所屬分類: XML and WebService

    這是我最近做項目時遇到的問題
       我是通過JMS機制獲得Topic的消息其消息格式是XML.本想將其寫成XML文檔再通過JDOM讀取.但考慮到實際開發中消息傳遞頻繁就放棄了該思路.最終采取了直接對其分析的方式,這樣就必須對取得的TextMessage做處理
       如下是我通過JDOM方式將得到的TextMessage(XML格式)進行解析的過程:

    package cmo.shubai.jdom;

    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) {
            
    //創建一個新的字符串
            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());
                }

                
    /*
                 * 如要取<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){
            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號   </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>";
            doc.xmlElements(xml);
        }

    }


    以上的例子和實際稍有出入-這個例子主要是用來演示JDOM解析XML字符串
    關于JDOM對XML文檔的解析可看JDOM處理帶Namespace的XML文件

    評論

    # re: JDOM解析XML字符串(非XML文檔)  回復  更多評論   

    2007-07-20 16:36 by sitinspring
    讓我想起了寒冬做JMS的歲月.

    # re: JDOM解析XML字符串(非XML文檔)  回復  更多評論   

    2007-10-17 17:09 by xb
    thank you

    # re: JDOM解析XML字符串(非XML文檔)  回復  更多評論   

    2008-10-30 16:01 by 戰斗中的人
    非常感謝你的文章

    # re: JDOM解析XML字符串(非XML文檔)  回復  更多評論   

    2010-11-08 14:29 by www
    thank you~~

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产a视频精品免费观看| 一级中文字幕乱码免费| 亚欧日韩毛片在线看免费网站| 亚洲人成网站在线播放影院在线| 久久久久亚洲AV无码网站| 亚洲色大成网站WWW国产| 97视频免费在线| 中文字幕日韩亚洲| 亚洲天堂2017无码中文| h片在线免费观看| 亚洲午夜久久久精品电影院| 69av免费视频| 亚洲第一男人天堂| 日韩一区二区在线免费观看 | 亚洲网红精品大秀在线观看| 色猫咪免费人成网站在线观看| 久久国产亚洲精品无码| 大学生一级毛片免费看| 久久亚洲精品视频| 一级成人毛片免费观看| 亚洲精品tv久久久久久久久 | 色欲色欲天天天www亚洲伊| 8x网站免费入口在线观看| 麻豆亚洲av熟女国产一区二| 国产乱码免费卡1卡二卡3卡| 亚洲AV无码男人的天堂| 亚洲男人av香蕉爽爽爽爽| 免费毛片a线观看| 亚洲熟女乱综合一区二区| 性色av极品无码专区亚洲| 浮力影院亚洲国产第一页| 日韩免费在线视频| 国内精品久久久久影院亚洲| 亚洲男人在线无码视频| 老汉精品免费AV在线播放| 黑人精品videos亚洲人| 91情侣在线精品国产免费| 一级做a爰片久久毛片免费陪 | 2048亚洲精品国产| 18禁免费无码无遮挡不卡网站 | 久青草视频97国内免费影视|