簡體   English   中英

htmlagilitypack c#中的li

[英]li in htmlagilitypack c#

我想從以下鋰獲得標簽和強值

<div class="property-summary">
    <h3>Listing summary</h3>
    <ul>
        <li>
            <label>Reference</label>
            <strong>BR-S-4301</strong>
        </li>

        <li>
            <label>Type</label>
            <strong>Apartment</strong>
        </li>

        <li>
            <label>City</label>
            <strong>Dubai</strong>
        </li>

        <li>
            <label>Community</label>
            <strong>Palm Jumeirah</strong>
        </li>

        <li>
            <label>Subcommunity</label>
            <strong>Tiara Residences</strong>
        </li>
    </ul>
</div>

這是我的C#代碼

 var dataNode = rootNode.SelectNodes("//div[normalize-space(@class)='property-summary']");

現在如何得到它? 下面對我不起作用

 var Node = dataNode .SelectSingleNode(".//li/strong");

有幾種方法可以做到這一點。

1個

var labelNodes = doc.DocumentNode.SelectNodes("//div[normalize-space(@class)='property-summary']/ul/li/label");
var strongNodes = doc.DocumentNode.SelectNodes("//div[normalize-space(@class)='property-summary']/ul/li/strong");

foreach (var node in labelNodes)
{
    Debug.WriteLine(node.InnerText.Trim());
}
foreach (var node in strongNodes)
{
    Debug.WriteLine(node.InnerText.Trim());
}

2

var liNodes = doc.DocumentNode.SelectNodes("//div[normalize-space(@class)='property-summary']/ul/li");

foreach (var node in liNodes)
{
    Debug.WriteLine(node.SelectSingleNode("label").InnerText.Trim());
    Debug.WriteLine(node.SelectSingleNode("strong").InnerText.Trim());
}

在編寫任何實際代碼之前檢查節點是否存在。

如果要獲取所有label標簽,可以使用

IEnumerable<HtmlNode> labels = dataNode.Descendants("label");

strong標簽一樣

IEnumerable<HtmlNode> strongs = dataNode.Descendants("strong");

您還可以使用:

var dataNode = doc.DocumentNode.SelectNodes("//div[normalize-space(@class)='property-summary']")[0];
HtmlNodeCollection strongs = dataNode.SelectNodes(".//li/strong");
HtmlNodeCollection labels = dataNode.SelectNodes(".//li/label");

要從要素或標簽中獲取文字,請使用:

foreach (var strong in strongs)
{
    string strongText = strong.InnerText.Trim();
}

您可以考慮切換到這些HTML解析庫,這些庫提供出色的jQuery選擇器,例如功能。

http://nsoup.codeplex.com/

http://github.com/jamietre/csquery

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM