如何从 xPath 中删除 <a> 个元素?
How to remove <a> elements from xPath?
我正在使用 HTMLAgilityPack 在 C# 中制作一个应用程序。
我有以下 HTML 结构:
<td colspan="3">
<a href="tournament_detail.asp?EID=3">The North West Junior Champions League 2016</a>
<br>
St Bedes Sports Fields, Manchester. M21 0TT</td>
</td>
我想拉出地址,不包括<a>
和<br />
我试过以下方法:
//div[@class='infobox']/table/tr/td[1][not a]
Here is the site I am trying to pull data from
我正在使用 HTMLAgilityPack,所以我不相信我可以使用 string() 函数(或者至少我在尝试时遇到异常)。 请不要将此标记为重复,因为我正在寻求澄清是否可以使用它。
我怎样才能只拉回地址?
添加谓词 [not(a)]
会导致 XPath 仅 return 没有子 <a>
的 <td>
元素,这不是想要的结果。相反,添加 /text()[normalize-space()]
这将 return 从选定的 <td>
直接子非空文本节点 :
var raw = @"<td colspan='3'>
<a href='tournament_detail.asp?EID=3'>The North West Junior Champions League 2016</a>
<br>
St Bedes Sports Fields, Manchester. M21 0TT</td>";
var doc = new HtmlDocument();
doc.LoadHtml(raw);
var td = doc.DocumentNode.SelectSingleNode("//td/text()[normalize-space()]");
Console.WriteLine(td.InnerText.Trim());
输出:
St Bedes Sports Fields, Manchester. M21 0TT
我正在使用 HTMLAgilityPack 在 C# 中制作一个应用程序。
我有以下 HTML 结构:
<td colspan="3">
<a href="tournament_detail.asp?EID=3">The North West Junior Champions League 2016</a>
<br>
St Bedes Sports Fields, Manchester. M21 0TT</td>
</td>
我想拉出地址,不包括<a>
和<br />
我试过以下方法:
//div[@class='infobox']/table/tr/td[1][not a]
Here is the site I am trying to pull data from
我正在使用 HTMLAgilityPack,所以我不相信我可以使用 string() 函数(或者至少我在尝试时遇到异常)。 请不要将此标记为重复,因为我正在寻求澄清是否可以使用它。
我怎样才能只拉回地址?
添加谓词 [not(a)]
会导致 XPath 仅 return 没有子 <a>
的 <td>
元素,这不是想要的结果。相反,添加 /text()[normalize-space()]
这将 return 从选定的 <td>
直接子非空文本节点 :
var raw = @"<td colspan='3'>
<a href='tournament_detail.asp?EID=3'>The North West Junior Champions League 2016</a>
<br>
St Bedes Sports Fields, Manchester. M21 0TT</td>";
var doc = new HtmlDocument();
doc.LoadHtml(raw);
var td = doc.DocumentNode.SelectSingleNode("//td/text()[normalize-space()]");
Console.WriteLine(td.InnerText.Trim());
输出:
St Bedes Sports Fields, Manchester. M21 0TT