免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2170 | 回复: 4
打印 上一主题 下一主题

DOM 解释xml文件的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-24 15:50 |只看该作者 |倒序浏览
有一个xml文件

  1. <?xml version="1.0" standalone="yes"?>
  2. <links>
  3.         <link>
  4.                 <text>The makers of Java</text>
  5.                 <url>http://java.sun.com</url>
  6.                 <author>Sun Microsystems</author>
  7.                 <date>2001-1-3</date>
  8.                 <description>Sun Microsystem's website.</description>
  9.         </link>
  10. </links>
复制代码


如何用DOM得到link底下的所有的key和value

哪位指点一二

论坛徽章:
0
2 [报告]
发表于 2005-11-24 17:30 |只看该作者
XPATH

论坛徽章:
0
3 [报告]
发表于 2005-11-24 18:28 |只看该作者
楼上能详细地解释一下吗?
谢谢

论坛徽章:
0
4 [报告]
发表于 2005-11-24 19:53 |只看该作者


  1.         // 汇集多个link节点的时候
  2.   
  3.         org.dom4j.Document xmldoc = ....;
  4.         String xpath = "/links/link/*";
  5.         java.util.List nodes = xmldoc.selectNodes(xpath);
  6.         org.dom4j.Element elem = null;
  7.         String key = ""; String val = "";
  8.         for( java.util.Iterator itr = nodes.iterator(); itr.hasNext(); ) {
  9.             elem = (org.dom4j.Element) itr.next();
  10.             key = elem.getName();
  11.             val = elem.getTextTrim();
  12.             System.out.println("key = " + key);
  13.             System.out.println("val = " + val);
  14.         }



  15.         // 多个link节点取每个的时候
  16.   
  17.         String xpath = "/links/link";
  18.         java.util.List links = xmldoc.selectNodes(xpath);
  19.         org.dom4j.Element link = null;
  20.         int i = 0;
  21.         for( java.util.Iterator itrLinks = links.iterator(); itrLinks.hasNext(); i++) {
  22.             link = (org.dom4j.Element) itrLinks.next();
  23.             java.util.List nodes = link.elements();
  24.             org.dom4j.Element elem = null;
  25.             String key = ""; String val = "";
  26.             System.out.println("i = " + i);
  27.             for( java.util.Iterator itr = nodes.iterator(); itr.hasNext(); ) {
  28.                 elem = (org.dom4j.Element) itr.next();
  29.                 key = elem.getName();
  30.                 val = elem.getTextTrim();
  31.                 System.out.println("key = " + key);
  32.                 System.out.println("val = " + val);
  33.             }
  34.         }
  35.    
复制代码

论坛徽章:
0
5 [报告]
发表于 2005-11-24 19:59 |只看该作者

  1.   <?xml version="1.0" standalone="yes"?>
  2. <links>
  3.         <link id="0">
  4.                 <text>The makers of Java</text>
  5.                 <url>http://java.sun.com</url>
  6.                 <author>Sun Microsystems</author>
  7.                 <date>2001-1-3</date>
  8.                 <description>Sun Microsystem's website.</description>
  9.         </link>
  10.         <link id="1">
  11.                 <text>The makers of Java</text>
  12.                 <url>http://java.sun.com</url>
  13.                 <author>Sun Microsystems</author>
  14.                 <date>2001-1-3</date>
  15.                 <description>Sun Microsystem's website.</description>
  16.         </link>
  17. </links>


  18.         // 取id = 1
  19.         String xpath = "/links/link[@id=\"1\"]";
  20.         java.util.List links = xmldoc.selectNodes(xpath);
  21.         org.dom4j.Element link = null;
  22.         for( java.util.Iterator itrLinks = links.iterator(); itrLinks.hasNext(); ) {
  23.             link = (org.dom4j.Element) itrLinks.next();
  24.             System.out.println("id = " + link.attributeValue("id"));
  25.             java.util.List nodes = link.elements();
  26.             org.dom4j.Element elem = null;
  27.             String key = ""; String val = "";
  28.             for( java.util.Iterator itr = nodes.iterator(); itr.hasNext(); ) {
  29.                 elem = (org.dom4j.Element) itr.next();
  30.                 key = elem.getName();
  31.                 val = elem.getTextTrim();
  32.                 System.out.println("key = " + key);
  33.                 System.out.println("val = " + val);
  34.             }
  35.         }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP