0

如何获取此 HTML 块中的文本?

<td align="left" style="">2000000033754<br/>CHOICE_HARVEST-GALA _APPLE-10S</td>                 

我正在使用 HTMLAgilityPack,这是我在 vb.net 中的代码

If cols1(m).OuterHtml.Contains("<br>") Then
   ' split into barcode and item name
   Dim barcode As HtmlNode = cols1(m).SelectSingleNode("text()[preceding::br]")
   sSQL = sSQL & "," & ToCHR(barcode.InnerText.Trim)
   Dim item As HtmlNode = cols1(m).SelectSingleNode("text()[following::br]")
   sSQL = sSQL & "," & ToCHR(item.InnerText.Trim)

我需要得到这些结果

barcode.innertext = "2000000033754"- 这是工作

item.innertext = "CHOICE_HARVEST-GALA _APPLE-10S"- 需要帮助

4

1 回答 1

0

如果您知道这是结构,您可以简单地使用 HtmlAgilityPack 将在 HtmlNode 和 TextNode 之间拆分节点的事实。在以下示例中,li包含三个子元素:两个文本元素 (beforeafter),由一个 html 元素 ( )br分隔

var hd = new HtmlDocument();
hd.LoadHtml("<html><body><ul><li>before<br/>after</li></ul></body></html>");
var lis = hd.DocumentNode.FirstChild.FirstChild.FirstChild; // select the ul
foreach (var li in lis.ChildNodes)
{
    var firstTextNode = li.ChildNodes.First(hn => hn.NodeType == HtmlNodeType.Text);
    var lastTextNode = li.ChildNodes.Last(hn => hn.NodeType == HtmlNodeType.Text);
}
于 2014-10-08T09:04:09.110 回答