【问题标题】:xpath issue (HtmlAgilityPack)xpath 问题(HtmlAgilityPack)
【发布时间】:2013-10-15 21:13:34
【问题描述】:

我有一个“TR”节点数组。我想要的只是获取每个元素的子“TD”标签。

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

这是我的代码:

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("***********************");
}

【问题讨论】:

  • 不确定这是否能解决问题,但在字符串中使用单引号。这就是我一直以来的做法。
  • @AlexHerrmann 您需要使用单引号。同时检查id 的值是否与 html 中的值相同
  • @AlexHerrmann,并非每种语言都使用像 C/C++/Java 这样的单引号,而且我 90% 确信 XPath 不遵循 C 约定。不要做出如此笼统的陈述。
  • 是的,你是对的。肯定是关于 xpath 的。

标签: c# html xpath html-parsing


【解决方案1】:

在 XPath 中“//”表示“所有节点都从根开始 - 所以您的第二次搜索 "//td" 会忽略 tr 作为父节点并搜索整个 DOM。

您很可能只是在寻找"td"(而不是"//td")。

【讨论】:

  • No..第二个 //td 不会搜索整个 dom
  • @Anirudh - 你认为这意味着什么?
猜你喜欢
  • 2014-04-29
  • 1970-01-01
  • 2014-05-19
  • 1970-01-01
  • 2012-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多