1

我正在尝试使用 htmlagilitypack 解析下表。

    <tr>
      <th>
        Anställda:
      </th>
      <td>
        0 - 4
      </td>
    </tr>
    <tr>
      <th>
        Oms (tkr):
      </th>
      <td>
        5 409
      </td>
    </tr>

我试图提取Oms (tkr)的值:(在本例中为5 409

下面的代码给了我上面的 html 表。问题是我获取了 Oms (tkr) 值。还应该说,Oms (tkr) 并不总是在同一个地方,它可以在表格中进一步下降或进一步上升。我的意思是 Oms 有时可能是 Anställda 所在的位置等等。

foreach (HtmlAgilityPack.HtmlNode graf in (IEnumerable<HtmlAgilityPack.HtmlNode>)doc.DocumentNode.SelectNodes("//div[@id=\"info\"]//table")) {
var tabellHTdML = graf.InnerHtml;
MessageBox.Show(tabellHTdML);

}

我试过这样做:

if (tabellHTML.Contains("Oms"))
{
item.OMS = cells.InnerText;
}

但似乎无法获得正确的价值..任何想法我做错了什么?

4

1 回答 1

0

以下代码:

HtmlDocument doc = new HtmlDocument();
doc.Load("test.htm");

Console.WriteLine(doc.DocumentNode.SelectSingleNode("//th[starts-with(normalize-space(text()), 'Oms')]").InnerHtml.Trim());

将转储这个:

Oms (tkr)

但是您必须手动解析结尾。Html Agility Pack 只知道元素和属性。XPATH表达式的意思是:选择任何具有以“Oms”开头的文本内容的 TH 元素,一旦被修剪(规范化空间)。

于 2013-05-02T06:13:34.673 回答