dom4j中获取相同名称节点个数的方法是什么?
比如这个xml文件:<?xmlversion="1.0"encoding="GBK"?><doc><personid="1"sex="m"><name>zhangsan<...
比如这个xml文件:
<?xml version="1.0" encoding="GBK"?>
<doc>
<person id="1" sex="m">
<name>zhangsan</name>
<age>32</age>
<adds>
<add code="home">home add</add>
<add code="com">com add</add>
</adds>
</person>
<person id="2" sex="w">
<name>lisi</name>
<age>22</age>
<adds>
<add ID="22" id="23" code="home">home add</add>
<add ID="23" id="22" code="com">com add</add>
<add id="24" code="com">com add</add>
</adds>
</person>
</doc>
是不是有一个方法直接得到person节点的个数?
没有为类型 Document 定义方法 getElementsByTagName(String)
怎么回事?
找到方法了。。。
List list = document.selectNodes("/doc/person");
int num = list.size(); 展开
<?xml version="1.0" encoding="GBK"?>
<doc>
<person id="1" sex="m">
<name>zhangsan</name>
<age>32</age>
<adds>
<add code="home">home add</add>
<add code="com">com add</add>
</adds>
</person>
<person id="2" sex="w">
<name>lisi</name>
<age>22</age>
<adds>
<add ID="22" id="23" code="home">home add</add>
<add ID="23" id="22" code="com">com add</add>
<add id="24" code="com">com add</add>
</adds>
</person>
</doc>
是不是有一个方法直接得到person节点的个数?
没有为类型 Document 定义方法 getElementsByTagName(String)
怎么回事?
找到方法了。。。
List list = document.selectNodes("/doc/person");
int num = list.size(); 展开
2个回答
展开全部
var length= document.getElementsByTagName("person").size;
用这样方法就可以...
从来没有见过楼主讲的方法..
呵呵...
祝楼主早日成功!!!
用这样方法就可以...
从来没有见过楼主讲的方法..
呵呵...
祝楼主早日成功!!!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以使用 XPath 来实现,比较简单
先将 dom4j-1.6.jar 和 jaxen-1.1-beta-4.jar 加入到 CLASSPATH
1.xml:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<a>
<b>
<c>test1</c>
</b>
</a>
<a>
<c>test2</c>
</a>
</root>
TestXpath.java:
public static void main(String[] args) throws DocumentException {
SAXReader reader = new SAXReader();
Document doc = reader.read(new File("d:\\1.xml"));
Element root = doc.getRootElement();
Element ec = (Element)root.selectSingleNode("//c"); //查找根元素下的第一个 c 节点
System.out.println(ec.getTextTrim()); //print "test1"
List ecList = root.selectNodes("//c"); //查找文档中所有的 c 节点
/*
* print
*
* test1
* test2
*
* */
for(Iterator iterator = ecList.iterator(); iterator.hasNext(); )
{
Element element = (Element)iterator.next();
System.out.println(element.getTextTrim());
}
}
先将 dom4j-1.6.jar 和 jaxen-1.1-beta-4.jar 加入到 CLASSPATH
1.xml:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<a>
<b>
<c>test1</c>
</b>
</a>
<a>
<c>test2</c>
</a>
</root>
TestXpath.java:
public static void main(String[] args) throws DocumentException {
SAXReader reader = new SAXReader();
Document doc = reader.read(new File("d:\\1.xml"));
Element root = doc.getRootElement();
Element ec = (Element)root.selectSingleNode("//c"); //查找根元素下的第一个 c 节点
System.out.println(ec.getTextTrim()); //print "test1"
List ecList = root.selectNodes("//c"); //查找文档中所有的 c 节点
/*
*
* test1
* test2
*
* */
for(Iterator iterator = ecList.iterator(); iterator.hasNext(); )
{
Element element = (Element)iterator.next();
System.out.println(element.getTextTrim());
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询