以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 XML源码及示例(仅原创和转载) 』  (http://bbs.xml.org.cn/list.asp?boardid=32)
----  我写了段读取XML代码,有里面多层结构但是里面的三层确不知道怎么读取?能帮助一下吗?提供xml和java源文件。  (http://bbs.xml.org.cn/dispbbs.asp?boardid=32&rootid=&id=23681)


--  作者:xwsungoal
--  发布时间:10/28/2005 7:57:00 PM

--  我写了段读取XML代码,有里面多层结构但是里面的三层确不知道怎么读取?能帮助一下吗?提供xml和java源文件。
import  java.io.BufferedReader;  
import  java.io.FileInputStream;  
import  java.io.FileOutputStream;  
import  java.io.InputStream;  
import  java.io.InputStreamReader;  
import  javax.xml.parsers.DocumentBuilder;  
import  javax.xml.parsers.DocumentBuilderFactory;  
import  org.w3c.dom.Document;  
import  org.w3c.dom.Element;  
import  org.w3c.dom.Node;  
import  org.w3c.dom.NodeList;  

public  class  DomParse_MM  
{  
           public  DomParse_MM()  
           {  
                       DocumentBuilderFactory  domfac  =  DocumentBuilderFactory.newInstance();  
                       try  
                       {  
                                   DocumentBuilder  dombuilder  =  domfac.newDocumentBuilder();  
                                   InputStream  is  =  
                                               new  FileInputStream("C:/Documents  and  Settings/Administrator/桌面/WORD文档/2.xml");  
                                   Document  doc  =  dombuilder.parse(is);  
                                   Element  root  =  doc.getDocumentElement();  
                                   NodeList  main  =  root.getChildNodes();  
                                   if  (main  !=  null)  
                                   {  
                                               for  (int  i  =  0;  i  <  main.getLength();  i++)  
                                               {  
                                                           Node  article  =  main.item(i);  
                                                           if  (article.getNodeType()  ==  Node.ELEMENT_NODE)  
                                                           {  
                                                                       for  (Node  node  =  article.getFirstChild();  
                                                                                   node  !=  null;  
                                                                                   node  =  node.getNextSibling())  
                                                                       {  
                                                                                   if  (node.getNodeType()  ==  Node.ELEMENT_NODE)  
                                                                                   {  
                                                                                               if  (node.getNodeName().equals("title"))  
                                                                                               {  
                                                                                                           String  title  =  
                                                                                                                       node.getFirstChild().getNodeValue();  
                                                                                                           //stem.out.println("Title  is  "  +  title);  
                                                                                               }  
                                                                                               if  (node.getNodeName().equals("datetime"))  
                                                                                               {  
                                                                                                           String  datetime  =  
                                                                                                                       node.getFirstChild().getNodeValue();  
                                                                                                                       //System.out.println("datetime  "  +  datetime);  
                                                                                               }  
                                                                                               if  (node.getNodeName().equals("objects"))  
                                                                                               {  
                                                                                                           Element  rot1=doc.getDocumentElement();  
                                                                                                           NodeList  objects=rot1.getChildNodes();  
                                                                                                           System.out.println(""+objects);  
                                                                                                           if(objects  !=null)  
                                                                                                           {  
                                                                                                                       for(int  n=0;n<objects.getLength();n++)  
                                                                                                                       {  
                                                                                                                                   Node  object=objects.item(n);  
                                                                                                                       //            System.out.println(objects.getLength());  
                                                                                                                                   if(object.getNodeType()==Node.ELEMENT_NODE)  
                                                                                                                                   {  
                                                                                                                                               for(Node  no=object.getFirstChild();no!=null;no=no.getNextSibling())  
                                                                                                                                               {  
                                                                                                                                                           if(no.getNodeType()==Node.ELEMENT_NODE)  
                                                                                                                                                           {  
                                                                                                                                                                       //System.out.println(no.getNodeName());  
                                                                                                                                                                       if(no.getNodeName().equals("object"))  
                                                                                                                                                                       {  
                                                                                                                                                                                   String  data=no.getFirstChild().getNodeValue();  
                                                                                                                                                                                   System.out.println(""+data);  
                                                                                                                                                                       }  
                                                                                                                                                           }  
                                                                                                                                               }  
                                                                                                                                   }  
                                                                                                                       }  
                                                                                                           }  
                                                                                               }  
                                                                                   }  
                                                                       }  
                                                           }  
                                               }  
                                   }  
                       }  
                       catch  (Exception  ex)  
                       {  
                                   ex.printStackTrace();  
                       }  
           }  
           public  static  void  main(String[]  args)  
           {  
                       new  DomParse_MM();  
           }  
}  
需要读取的XML  在下面  

  


--  作者:xwsungoal
--  发布时间:10/28/2005 7:59:00 PM

--  
<?xml version="1.0" encoding="gb2312"?>
<main>
<edition>1.0</edition>
<copyright>网络</copyright>
<article>
<title><![CDATA[美这个这个是TITLE来的]]></title>
<keyword><![CDATA[公司 增程 bterm 炮弹 美国 atk 制导 弹道 试验 时间 设计 精度 进行 火箭 飞行 127  ]]></keyword>
<text><![CDATA[  公司研制的127毫米弹道增程弹药
点击此处查看全部军事图片
短。
]]></text>
<datetime>2005-10-28 16:37:47</datetime>
<brief><![CDATA[    Files\data20051020\14\10464073718\0.jpg"border="1">美国阿连特技术系统(ATK)公司研制的127毫米弹道增程弹药点击此处查看全部军事图片]]></brief>
<url><![CDATA[http://jczs.sina.com.cn/2005-10-19/0951325663.html]]></url>
<ContentInfoType>2</ContentInfoType>
<objects>
<object>
<type>image</type><name>SnatchImg_0.jpg</name>
<data><![CDATA[/9j/4AAQSkZJRgABAQEBAQEBAQEBAQEBAQEH//2Q==]]></data>
</object>

</objects>
</article>
</main>


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
140.625ms