下面的XML代码:
<?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book><book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book></bookstore>下面的代码:
NodeList list = (NodeList)path.evaluate("//title[last()]", doc,XPathConstants.NODESET);
System.out.println(list.getLength());
上面的代码会输出2??? 为什么呢?last() 没起到作用??还有 position() 这个怎么用?我试用了一下,好像 一点作用都没有啊?
谢谢回答!
<?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book><book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book></bookstore>下面的代码:
NodeList list = (NodeList)path.evaluate("//title[last()]", doc,XPathConstants.NODESET);
System.out.println(list.getLength());
上面的代码会输出2??? 为什么呢?last() 没起到作用??还有 position() 这个怎么用?我试用了一下,好像 一点作用都没有啊?
谢谢回答!
解决方案 »
- 递归那点问题
- 雪地跪求,关于java中StringBuilder()的问题?
- 我很迷茫,思想很乱!
- applet问题
- 大家帮忙看看这几道题选什么,谢谢!!
- java如何读取xml文件
- 我用Jet把java编译成本地可执行的程序了,可是换一台机子又不可以运行了,说是需要有jet的运行坏环境,那还不如安装JVM呢。求高手教我怎
- 关于JTable:选择表里的一行,要求新弹出的一窗口里面TextField显示这行各个字段的内容,JTable有这样的ActionListener吗?
- 关于this的一个简单问题。
- 如何用JAVA制作不规则窗口
- 一个基础的JAVA问题,关于传值和传引用
- windowClosing 作用。
NodeList list = (NodeList)path.evaluate("//title[last()]", doc,XPathConstants.NODESET);
->
Node node= (Node)path.evaluate("//title[last()]", doc,XPathConstants.NODE);
一个节点应该这么取吧?
<?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book><book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book><book>
<title lang="eng">Squall</title>
<price>39.95</price>
</book></bookstore>position()
NodeList list = (NodeList)path.evaluate("//title[position()<3]", doc,XPathConstants.NODESET);
"//book[1]/title[last()]"
就是1个了
上表偶数位元素
回 dracularking :
//title 是匹配到了两个
可是后面不是用[last()]取最后一个了么?
那为什么返回的nodelist里还是两个节点?
System.out.println(path.evaluate("//title[position() = 2]/text()", doc));如果改成position() = 1
却能拿到harry potter
//book//title返回的是两个book节点下的title节点,你再区last()和position=1是一样的,因为他只有
一个,但是你这样用last()方法就可以得到预期的效果,如//book[last()]得到是
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
匹配到了两个book块中的last title
所谓last 只是对亲生兄弟而言的
结贴了。谢谢各位回答!