HtmlAgilityPack Как заменить этот текст cf.example - PullRequest
1 голос
/ 18 марта 2012

Я хотел бы знать, как получить в строку значение.Например, я хочу поместить значение HELLO в строку, но я не знаю, как это сделать .. :( Кто-то может мне помочь, пожалуйста?

<div class="position" >
<span class="cvetica" style="font-size: 24px">
<label style="font-size: 30px">11.522</label>
HELLO      
</span>
</div>

1 Ответ

0 голосов
/ 18 марта 2012

Ваш конкретный пример довольно прост - последний HtmlAgilityPack также поддерживает Linq, поэтому это будет работать:

HtmlDocument doc = new HtmlDocument();
doc.Load("test.html");

var spanNode = doc.DocumentNode.Descendants("span")
                    .Where(x => x.Attributes["class"]!=null && x.Attributes["class"].Value == "cvetica")
                    .FirstOrDefault();

if (spanNode != null)
{
    string text = spanNode.InnerText; 
    string  textHello = spanNode.ChildNodes
                                .Where(x => x.NodeType == HtmlNodeType.Text)
                                .Last().InnerText;
}

Обратите внимание, что первый вывод будет не таким, как вы могли ожидать, так как для строки "HELLO" нет прямого заключающего элемента, вы также получите HTML-код метки - вы можете обойти это, просто получив последний текстовый узел.

...