選択したノードのすべての子ノードを削除する方法 - html-agility-pack

c# html-agility-pack wpf

質問

私はこの特定のノードのすべての子ノードを削除したい

ここでノードのソースコード

<div class="Price fs30 clr8">
   7,
   <span class="PriceCurrency">73 TL
   <span class="kdv">KDV Dahil</span>
   </span>
   <div class="SaleDiv">
      %15
      <span>Ä°ndirim</span>
   </div>
</div>

だから私はすべてのスパンの子供とdiv子供を削除したい - 実際にすべての子供は、ノードの下にあるもの

これらの子を削除した後、 innertextは選択されたノードのinnertextとして7,を得るべきです

タイは非常に答えに

c#.net 4.5 wpf

受け入れられた回答

外側の<div>内にテキストノードだけを残したい場合は、星型XPathセレクタ( * )を使用してすべてのhtml子ノードを選択して削除することができます。コンソールアプリケーションの例を次に示します。

var html = @"<div class=""Price fs30 clr8"">
   7,
   <span class=""PriceCurrency"">73 TL
   <span class=""kdv"">KDV Dahil</span>
   </span>
   <div class=""SaleDiv"">
      %15
      <span>Ä°ndirim</span>
   </div>
</div>";
var doc = new HtmlDocument();
doc.LoadHtml(html);
var div = doc.DocumentNode.SelectSingleNode("//div[@class='Price fs30 clr8']");
foreach (HtmlNode node in div.SelectNodes("*"))
{
    node.Remove();
}
var innerText = div.InnerText.Trim();
Console.WriteLine(innerText);


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ