当前位置:编程学习 > C#/ASP.NET >>

对xpath的一个疑问

以下是是我用HtmlAgilityPack读到的数据 

hidenode.XPath
"/html[1]/body[1]/center[1]/table[5]/tr[1]/tr[3]/td[2]/table[1]/tr[2]/td[1]/span[2]/blockquote[1]/font[1]"

hidenode.SelectSingleNode("a").XPath
"/html[1]/body[1]/center[1]/table[5]/tr[1]/tr[3]/td[2]/table[1]/tr[2]/td[1]/span[2]/blockquote[1]/font[1]/a[1]"

hidenode.SelectNodes("//a")[0].XPath
"/html[1]/body[1]/center[1]/table[1]/tr[1]/td[1]/table[1]/tr[1]/td[1]/tr[1]/td[1]/tr[2]/td[1]/div[1]/span[1]/a[1]"

我的疑问是SelectNodes("//a") 为什么不是从 hidenode的位置开始搜寻, 而是从整个文件的根节点开始搜寻?

而我的另外一个搜寻 又是 正确的
t.XPath
"/html[1]/body[1]/center[1]/table[5]/tr[1]/tr[3]"

t.SelectNodes("//table[1]/tr/td[@valign='top']//img")[0].XPath
"/html[1]/body[1]/center[1]/table[5]/tr[1]/tr[3]/td[2]/table[1]/tr[2]/td[1]/span[2]/img[1]" --------------------编程问答-------------------- 我的疑问是SelectNodes("//a") 为什么不是从 hidenode的位置开始搜寻, 而是从整个文件的根节点开始搜寻?
按你的理解,那写成这样会是怎样?
hidenode.SelectNodes("a") --------------------编程问答--------------------
引用 1 楼 dongxinxi 的回复:
我的疑问是SelectNodes("//a") 为什么不是从 hidenode的位置开始搜寻, 而是从整个文件的根节点开始搜寻?
按你的理解,那写成这样会是怎样?
hidenode.SelectNodes("a")


现在就是 hidenode.SelectNodes("a") 找到了我要的数据,  
hidenode.SelectSingleNode("//a") 反而 找到 整个 doc的头部去了 --------------------编程问答-------------------- 还是说HtmlAgilityPack  有什么设置 , 才能才 节点使用SelectNodes 方法的时候 自从节点本身搜索 --------------------编程问答--------------------
引用 3 楼 ayun00 的回复:
还是说HtmlAgilityPack  有什么设置 , 才能才 节点使用SelectNodes 方法的时候 自从节点本身搜索


还是说HtmlAgilityPack有什么设置 , 才能在节点使用SelectNodes方法的时候 只从节点本身内部搜索
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,