HtmlAgilityPack如何替换此文本cf.example

时间:2012-03-17 21:34:32

标签: c# html-agility-pack

我想知道如何在字符串中输入值。 例如,我想将HELLO值放在一个字符串中,但我不知道该怎么做.. :(有人可以帮我吗?

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

1 个答案:

答案 0 :(得分:0)

您的特定示例相当简单 - 最新的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 - 您可以通过检索最后一个来解决这个问题文本节点。