Нужен элемент HTML с HTMLAgilityPack в C # - как это сделать? - PullRequest
0 голосов
/ 23 сентября 2011

У меня есть следующий сценарий:

<a href="test.com">Some text <b>is bolded</b> some is <b>not</b></a>

Теперь, как мне получить часть "test.com" и привязку текста, не имея выделенных жирным шрифтом частей?

1 Ответ

2 голосов
/ 23 сентября 2011

Предполагая следующую разметку:

<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, указав уникальный идентификатор или имя класса для привязки, которую вы пытаетесь получить:

// assuming <a href="test.com" id="foo">Some text <b>is bolded</b> some is <b>not</b></a>
var anchor = doc.GetElementbyId("foo");
...