在br/tag之前和之后获取文本 - vb.net中的htmlagilitypack
问题描述:
如何获取此HTML块中的文本?在br/tag之前和之后获取文本 - vb.net中的htmlagilitypack
<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"
- 需要帮助有了这个
答
如果你知道这个是结构,您可以简单地使用HtmlAgilityPack将HtmlNode和TextNode之间的节点拆分的事实。在下面的例子中,li
包含三个孩子:两个文本元素(before
和after
)通过使用一个跨度的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-08 03:36:51