Hier ist das HTML-Snippet. Wie bekomme ich Normalize-Space Text?
Um nach dem gleichen Fragment zu suchen, aber mit Xpath //*[normalize-space()='Text1 Text2']
<div>
<div>
<a></a>
<a></a>
<div><a><span></span>Text2</a></div>
</div>
<div>Text2</div>
</div>
Verwenden:
var htmlNodes = htmlDoc.DocumentNode.SelectNodes("*");
foreach (var node in htmlNodes)
{
text += node.InnerText;
}
Ich bekomme diese Zeichenfolge:
"\r\n \r\n \r\n \r\n \r\n Text1\r\n Text2"
Kann ich einen normalen Text bekommen?
"Text1 Text2"
Sie können stattdessen die InnerText
Eigenschaft verwenden:
var texts = document.DocumentNode.Descendants("div").Select(n => n.InnerText);
Und kombinieren Sie sie, wenn Sie wollen:
var combined = string.Join(" ", texts);
Um leere Werte herauszufiltern:
.Select(n => n.InnerText.Replace("\r\n", "")).Where(s => !string.IsNullOrEmpty(s));