0
我有以下情形:在C#中使用HTMLAgilityPack需要一些HTML元素 - 怎麼做?
<a href="test.com">Some text <b>is bolded</b> some is <b>not</b></a>
現在,我該如何獲得「test.com」部分和文本的錨,而無需粗體部分?
我有以下情形:在C#中使用HTMLAgilityPack需要一些HTML元素 - 怎麼做?
<a href="test.com">Some text <b>is bolded</b> some is <b>not</b></a>
現在,我該如何獲得「test.com」部分和文本的錨,而無需粗體部分?
假設下面的標記:
<html>
<head>
<title>Test</title>
</head>
<body>
<a href="test.com">Some text <b>is bolded</b> some is <b>not</b></a>
</body>
</html>
你可以執行以下操作:
class Program
{
static void Main()
{
var doc = new HtmlDocument();
doc.Load("test.html");
var anchor = doc.DocumentNode.SelectSingleNode("//a");
Console.WriteLine(anchor.Attributes["href"].Value);
Console.WriteLine(anchor.InnerText);
}
}
打印:
test.com
Some text is bolded some is not
當然,你可能想通過提供調整SelectSingleNode
XPath的選擇一個唯一的ID或一個類名到您想要獲取的錨:
// assuming <a href="test.com" id="foo">Some text <b>is bolded</b> some is <b>not</b></a>
var anchor = doc.GetElementbyId("foo");
正是我需要的。我在HTML上做了一些攻擊來獲取我想要的文本。我刪除了鏈接,然後將其提供給HtmlDocument的LoadHTML方法。它做了詭計。不幸的是,我無法使用GetElementbyId,所以黑客做得不錯。 – Daniel
您是否正在提取「某些文本是粗體有些不是」(沒有格式標記的錨文本)或「某些文本是否」(標記中的內容被刪除)? – josh3736
我需要在錨點和整個文本中提取鏈接,而無需格式化標記。那將是「有些文字是粗體的,有些不是」。 – Daniel