<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 憶童年 閱讀(7434) 評論(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~~

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲性色成人av天堂| 亚洲视频在线观看免费| 亚洲av午夜国产精品无码中文字| 99久热只有精品视频免费看| 亚洲成人在线网站| 日本免费大黄在线观看| 亚洲午夜视频在线观看| 亚欧人成精品免费观看| 日本亚洲免费无线码| 日韩免费无码一区二区视频| 另类小说亚洲色图| 亚洲国产精品13p| 国产在线播放线91免费| 久久精品亚洲日本佐佐木明希| 99视频精品全部免费观看| 亚洲成人免费在线观看| 成人性生免费视频| 污网站在线免费观看| 亚洲日韩精品A∨片无码| 久久精品毛片免费观看| 亚洲av成人综合网| 又粗又硬又大又爽免费视频播放| 999zyz**站免费毛片| 亚洲天堂男人天堂| 午夜免费福利在线| 国产精品免费在线播放| 99久久亚洲综合精品成人网| 国产卡二卡三卡四卡免费网址| 国产成人高清亚洲一区久久| 亚洲无线观看国产精品| 国产成人yy免费视频| 狠狠综合亚洲综合亚洲色| 狠狠色伊人亚洲综合成人| 无码区日韩特区永久免费系列| 精品一区二区三区无码免费直播| 久久夜色精品国产亚洲| 色www永久免费视频| 搡女人免费免费视频观看| 一区二区亚洲精品精华液| 亚洲国产主播精品极品网红| 精品无码免费专区毛片|