Xpath定位xml返回值错误

sinat_34885563 2016-05-05 10:12:37
xml是这样的:
<?xml version="1.0" encoding="utf-8"?>
<doc>
<text>凯美瑞现在的价格优势蛮明显的。</text>
<evl id="0">
<evlobject firclass="性价比" secclass="" isimplicit="0" pos="6">价格优势</evlobject>
<evlcontent polar="A" pos="10">蛮明显</evlcontent>
<evlattribute pos="-1"/>
<evlnegative pos="-1" neg="0"/>
<evlmanuf pos="-1">丰田</evlmanuf>
<evlbrand pos="-1">凯美瑞</evlbrand>
<evltype pos="-1"/>
<evlvsmanuf pos="-1"/>
<evlvsbrand pos="-1"/>
<evlvstype pos="-1"/>
<evlcondition pos="-1"/>
</evl>
</doc>
Xpath语句是这样的:/doc/evl/evlobject

我要查出来的就是“价格优势”这个词,可是返回值有时候查的到有时候查不到,我就纳闷了。
开发源语言是c#。代码是这样的:
XmlDocument doc_ = new XmlDocument();
doc_.LoadXml(node.InnerXml);
//ele_s:sentence的xml对象
XmlElement ele_s = null;
ele_s = doc_.DocumentElement;
XmlNodeList sentence = null;
XmlNodeList obj = null;
sentence = ele_s.SelectNodes("/doc/text"); //读取每条评论本身
obj = ele_s.SelectNodes("/doc/evl/evlobject"); //读取每条评论的评论对象

sentence是每次都能读出来但是obj就老是出错。求大神帮助啊
...全文
188 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mlxwl2013 2016-05-06
  • 打赏
  • 举报
回复
应该是程序逻辑有问题,再仔细看看。不是跟你说了吗,每次都输出xml文档的全部内容看一下。
sinat_34885563 2016-05-05
  • 打赏
  • 举报
回复
程序没有抛出异常,就是obj .count有时候是1有时候是0影响接下来的程序(断点调试的时候偶尔1,但是每次直接运行程序都是0),而且sentence 是每次都能查到的,说明加载xml什么的应该都没有问题。 真是头疼,是不是程序结构不太对啊
mlxwl2013 2016-05-05
  • 打赏
  • 举报
回复
你写的xpath是正确的,我敢说不是xpath的原因,是其他原因。建议抛出异常时,输出doc_的全部文档内容,就知道了。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧