X-PATH 用selectSingleNode获取第二个节点的问题

时间:2023-02-10 00:08:26
xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<书架>
<书>
<书名>book1</书名>
<作者>au1</作者>
<售价>39.00元</售价>
</书>
<书>
<书名>book2</书名>
<作者>au2</作者>
<售价>28.00元</售价>
</书>
</书架>

如果想获取book2的售价,用Element pirce = root.selectSingleNode("//售价[2]");报空指针异常,但是把[]里面的2换成1就能正确获得book1的售价,这个应该怎么解决?

8 个解决方案

#1


你在book1下面再加个售价看看 "//售价[2]" 是什么结果。

#2


引用 1 楼 huasuoworld 的回复:
你在book1下面再加个售价看看 "//售价[2]" 是什么结果。


还是空指针…

#3


你参考下http://www.w3school.com.cn/xpath/xpath_syntax.asp,看看表达式是否正确。

#4


引用 3 楼 huasuoworld 的回复:
你参考下http://www.w3school.com.cn/xpath/xpath_syntax.asp,看看表达式是否正确。


这个确实有怀疑过,我用的这个方法在查的几个文档上面都没有应用的实例。

因为觉得可能用//进行全文搜索时候不支持[]格式,但问题是在[]中传1就可以实现…

#5


应该是root.selectSingleNode()这个方法的问题,你看看这个selectNodes()方法行么。

#6


引用 5 楼 huasuoworld 的回复:
应该是root.selectSingleNode()这个方法的问题,你看看这个selectNodes()方法行么。


selectNodes()是可行的,之前试过

#7


你从字面可以理解selectSingleNode()这个函数是单节点的,你一定要用selectSingleNode()的话可以重写覆盖掉。

#8


引用 7 楼 huasuoworld 的回复:
你从字面可以理解selectSingleNode()这个函数是单节点的,你一定要用selectSingleNode()的话可以重写覆盖掉。


我是觉得这个方法可能有问题,算了不用它了…

只有你回我,结账给你咯~~

#1


你在book1下面再加个售价看看 "//售价[2]" 是什么结果。

#2


引用 1 楼 huasuoworld 的回复:
你在book1下面再加个售价看看 "//售价[2]" 是什么结果。


还是空指针…

#3


你参考下http://www.w3school.com.cn/xpath/xpath_syntax.asp,看看表达式是否正确。

#4


引用 3 楼 huasuoworld 的回复:
你参考下http://www.w3school.com.cn/xpath/xpath_syntax.asp,看看表达式是否正确。


这个确实有怀疑过,我用的这个方法在查的几个文档上面都没有应用的实例。

因为觉得可能用//进行全文搜索时候不支持[]格式,但问题是在[]中传1就可以实现…

#5


应该是root.selectSingleNode()这个方法的问题,你看看这个selectNodes()方法行么。

#6


引用 5 楼 huasuoworld 的回复:
应该是root.selectSingleNode()这个方法的问题,你看看这个selectNodes()方法行么。


selectNodes()是可行的,之前试过

#7


你从字面可以理解selectSingleNode()这个函数是单节点的,你一定要用selectSingleNode()的话可以重写覆盖掉。

#8


引用 7 楼 huasuoworld 的回复:
你从字面可以理解selectSingleNode()这个函数是单节点的,你一定要用selectSingleNode()的话可以重写覆盖掉。


我是觉得这个方法可能有问题,算了不用它了…

只有你回我,结账给你咯~~