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

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

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

    隨筆-72  評論-63  文章-0  trackbacks-0
    ???Element類的getContent()方法返回一個List對象,它包括了一個元素的所有內(nèi)容:注釋、屬性、處理指令、文本和子元素。利用它我們可以遍歷XML文檔。下面的程序來自《java語言與xml教程》
    import?org.jdom.*;
    import?org.jdom.input.SAXBuilder;
    import?java.io.IOException;
    import?java.util.*;

    public?class?TreePrinter{
    ???public?static?void?process(Element?element){
    ??????inspect(element);
    ??????List?content=element.getContent();//取元素的所有內(nèi)容
    ??????Iterator?iterator=content.iterator();
    ??????while(iterator.hasNext()){
    ?????????Object?o=iterator.next();
    ?????????if(o?instanceof?Element){//如果是子元素
    ?????????????Element?child=(Element)o;
    ?????????????process(child);//遞歸調(diào)用
    ?????????}else?if(o?instanceof?Comment){//如果是說明
    ?????????????Comment?c=(Comment)o;
    ?????????????//System.out.println(c.getText());
    ????????????//?System.out.println();
    ??????}
    ???}

    ???public?static?void?inspect(Element?element){
    ????????if(!element.isRootElement()){
    ???????????System.out.println();
    ????????}

    ????????String?qualifiedName=element.getQualifiedName();
    ????????System.out.println(qualifiedName+":"+element.getText());
    ????????Namespace?namespace=element.getNamespace();
    ????????if(namespace!=Namespace.NO_NAMESPACE){
    ?????????????String?localName=element.getName();
    ?????????????String?uri=element.getNamespaceURI();
    ?????????????String?prefix=element.getNamespacePrefix();
    ?????????????System.out.println("??Local?name:?"+localName);
    ?????????????System.out.println("??Namespace?URI:?"+uri);
    ?????????????if(!"".equals(prefix)){
    ???????????????????System.out.println("??Namespace?prefix:?"+prefix);
    ?????????????}
    ?????????}

    ???????List?attributes=element.getAttributes();
    ???????if(!attributes.isEmpty()){
    ????????????Iterator?iterator=attributes.iterator();
    ????????????while(iterator.hasNext()){
    ???????????????Attribute?attribute=(Attribute)iterator.next();
    ???????????????String?name=attribute.getName();
    ???????????????String?value=attribute.getValue();
    ???????????????Namespace?attributeNamespace=attribute.getNamespace();
    ???????????????if(attributeNamespace==Namespace.NO_NAMESPACE){
    ?????????????????System.out.println("??"+name+?"=\""+value+?"\"");
    ???????????????}else{
    ?????????????????String?prefix=attributeNamespace.getPrefix();
    ?????????????????System.out.println("??"+prefix+":"+name+"=\""+value+"\"");
    ???????????????}
    ?????????????}
    ?????????}

    ?????????List?namespaces=element.getAdditionalNamespaces();
    ?????????if(!namespaces.isEmpty()){
    ????????????Iterator?iterator=namespaces.iterator();
    ????????????while(iterator.hasNext()){
    ????????????????Namespace?additional=(Namespace)iterator.next();
    ????????????????String?uri=additional.getURI();
    ????????????????String?prefix=additional.getPrefix();
    ????????????????System.out.println("??xmlns:"+prefix+"=\""+uri+"\"");
    ?????????????}
    ??????????}
    ????}

    ???????public?static?void?main(String[]?args){
    ?????????if(args.length<=0){
    ????????????System.out.println("Usage:?java?TreePrinter?URL");
    ????????????return;
    ??????????}
    ?????????String?url=args[0];
    ?????????try{
    ??????????????SAXBuilder?parser=new?SAXBuilder();
    ??????????????Document?document=parser.build(url);
    ??????????????process(document.getRootElement());
    ????????}catch(JDOMException?e){
    ??????????????System.out.println(url+"?is?not?well-formed.");
    ????????}catch(IOException?e){
    ??????????????System.out.println("Due?to?an?IOException,the?parser?could?not?encode?"+url);
    ????????}
    ??????}
    ?}

    ???運行結(jié)果:

    C:\java>java???TreePrinter?sample.xml
    HD:
    ??xmlns:dd="http://www.zzjava.hnzz.net"
    ??xmlns:ss="http://www.hnzz.net"
    disk:
    ??name="C"
    capacity:8G
    directories:200
    files:1580
    disk:
    ??name="D"
    capacity:10G
    directories:500
    files:3000

    用的xml文件是:
    <?xml?version="1.0"?encoding="UTF-8"?>
    <HD?xmlns:dd="http://www.zzjava.hnzz.net"??xmlns:ss="http://www.hnzz.net"?>
    ????????<disk?name="C">
    ????????????????<capacity>8G</capacity>
    ????????????????<directories>200</directories>
    ????????????????<files>1580</files>
    ????????</disk>

    ????????<disk?name="D">
    ????????????????<capacity>10G?<!--good-->
    ????????????????</capacity>
    ????????????????<directories>500</directories>
    ????????????????<files>3000</files>
    ????????</disk>
    </HD>

    http://blog.iyi.cn/start/2005/01/javaxml.html
    http://toney.cnblogs.com/archive/2004/11/20/66178.aspx
    posted on 2006-06-20 15:18 船長 閱讀(1499) 評論(1)  編輯  收藏 所屬分類: J2EE

    評論:
    # re: 用JDOM遍歷xml文檔 2009-05-06 16:54 | shang
    瘋狂的船長,若是我想讀出xml用表格的方式顯示出來,比如顯示出一份財務(wù)報表,應(yīng)該怎么寫?  回復(fù)  更多評論
      
    主站蜘蛛池模板: 国产精品亚洲综合一区| 免费一级毛片不卡在线播放| 中文字幕亚洲综合久久菠萝蜜 | 亚洲Aⅴ无码专区在线观看q| 久久国产乱子伦精品免费午夜| 亚洲精品无码日韩国产不卡?V| 无码毛片一区二区三区视频免费播放| 免费在线观看日韩| 特级aaaaaaaaa毛片免费视频| 免费A级毛片无码A| 亚洲阿v天堂在线2017免费 | 亚洲成a人片77777老司机| 日韩免费在线视频| 亚洲AV色吊丝无码| 日韩精品免费电影| 一级毛片一级毛片免费毛片| 亚洲日韩中文字幕日韩在线| 男女一边摸一边做爽的免费视频| 亚洲AV综合色区无码一区爱AV| 午夜视频免费在线观看| 亚洲免费福利在线视频| 亚洲图片一区二区| 国产成人免费高清激情明星| 亚洲最大的成人网站| 免费A级毛片无码久久版| 拍拍拍无挡视频免费观看1000| 亚洲高清视频在线播放| 最近免费中文字幕视频高清在线看 | 成人性生免费视频| 日韩在线视频线视频免费网站| 亚洲国产精品无码av| 男人的好免费观看在线视频| 人妻无码中文字幕免费视频蜜桃 | 国产精品免费看久久久| 亚洲w码欧洲s码免费| 免费大黄网站在线观| 久久99精品视免费看| 亚洲精品V天堂中文字幕| 亚洲精品二区国产综合野狼| 亚洲电影在线免费观看| 草久免费在线观看网站|