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