2013-10-08 34 views
0

我有一个“TR”节点数组。我想要的就是让每个元素的孩子“TD”标签。xpath问题(HtmlAgilityPack)

我不知道该怎么做。 有谁知道?

这里是我的代码:

foreach (HtmlNode tr in doc.DocumentNode.SelectNodes("//table[@id=\"ctl00_ContentPlaceHolder1_CustomerByLocation_ViewPanelStandAlone_ViewPanel_Grid_ctl01\"]/tr[position()>1]")) 
{ 
    foreach (HtmlNode td in tr.SelectNodes("//td")) 
    { 
     w.WriteLine(td.InnerHtml); 
    } 
    w.WriteLine("***********************"); 
} 
+0

不知道这是否会解决它,但在字符串中使用单引号。这就是我一直以来。 – riwalk

+0

@AlexHerrmann你需要使用单q uotes ..也检查'id'值是否与html – Anirudha

+0

@AlexHerrmann中的值相同,并非每种语言都使用单引号(如C/C++/Java),并且我确信XPath不遵循C约定。不要做出如此过分宽泛的陈述。 – riwalk

回答

1

在XPath“//”的意思是“从根开始的所有节点 - 所以你的第二个搜索"//td"忽略tr父反正搜索整个DOM

最有可能的。你正在寻找只是"td"(而不是"//td")。

+0

第二个// td不会搜索整个dom – Anirudha

+0

作品。谢谢! –

+1

@Anirudh - 你认为这意味着什么? –