簡體   English   中英

如何<a>從xPath中</a>刪除<a>元素?</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]

這是我要從中提取數據的站點

我正在使用HTMLAgilityPack,所以我不相信我可以使用string()函數(或者嘗試時至少出現異常)。 請不要將此標記為重復,因為我正在尋求澄清是否可以使用。

我該如何僅退回地址?

添加謂詞[not(a)]將導致XPath僅返回沒有子元素<a> <td>元素,這不是想要的結果。 而是添加/text()[normalize-space()] ,它將從所選的<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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM