<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~~

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


    網站導航:
     
    主站蜘蛛池模板: 久久久久久久岛国免费播放| 小说专区亚洲春色校园| 国产精品偷伦视频观看免费 | 亚洲色成人网站WWW永久四虎 | 中文无码日韩欧免费视频| AV在线亚洲男人的天堂| 日韩在线视频免费| 亚洲人成人无码网www国产| 色窝窝亚洲av网| 免费人成激情视频| 猫咪免费人成网站在线观看入口| 国产成人免费福利网站| 曰批全过程免费视频免费看 | 国产精品亚洲精品日韩电影| 在线成人a毛片免费播放| 亚洲AV无码一区二区三区性色| 最新中文字幕免费视频| 亚洲a∨无码精品色午夜| 免费在线黄色网址| 两个人日本WWW免费版| 在线免费观看亚洲| 中文字幕无码视频手机免费看| 亚洲欧好州第一的日产suv| 免费看国产一级特黄aa大片| 在线视频网址免费播放| 亚洲激情中文字幕| 国产精品久久久久免费a∨ | 欧美日韩国产免费一区二区三区| 亚洲大尺度无码无码专线一区| 亚洲国产精品碰碰| 久久国产精品免费观看| 亚洲天堂2016| 亚洲国产精品毛片av不卡在线| 亚洲免费在线播放| 亚洲AV无码一区二区三区网址| 国产亚洲午夜高清国产拍精品| 永久黄色免费网站| 四虎国产精品永免费| 97se亚洲综合在线| 九月婷婷亚洲综合在线| 99久热只有精品视频免费看 |