在Html标记之间查找文本

本文关键字:查找 文本 之间 Html | 更新日期: 2023-09-27 18:21:17

我正在处理HtmlDocument,希望在标签之间获取文本:

<span>Location:</span><br/>                                 
50 Airport Road<br/>
Ottawa, CA <br/><br/>
<span>Latitude / Longitude:</span><br/>
40.32083 / -71.67275<br/><br/>

我想要两样东西:

  • 机场路50号加拿大渥太华
  • 45.32083/756.72775

如何做到这一点。提前感谢。我的英语不好,请忽略。

在Html标记之间查找文本

使用HTML敏捷包,其中包括DOM解析器-为HTML编写自己的解析器或RegExs是不值得的。

http://www.nuget.org/packages/HtmlAgilityPack

在下面的示例中,您可以看到使用XPATH选择元素是多么容易。因为您想要的值实际上不在元素中,所以我使用text()来获取它们。

如果这是一个更大文档的一部分,则需要展开XPATH以反映它们在更大文档中的位置。

string html = @"<span>Location:</span><br/>                                 
    50 Airport Road<br/>
    Ottawa, CA <br/><br/>
    <span>Latitude / Longitude:</span><br/>
    40.32083 / -71.67275<br/><br/>";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
// Getting an element (Location:)
var latLongLabel = doc.DocumentNode.SelectSingleNode("span[2]");
// The location is split over two text nodes
var locationValA = doc.DocumentNode.SelectSingleNode("text()[1]").InnerHtml.Trim();
var locationValB = doc.DocumentNode.SelectSingleNode("text()[2]").InnerHtml.Trim();
// The lat long
var latLongVal = doc.DocumentNode.SelectSingleNode("text()[4]").InnerHtml.Trim();