White Space mit HtmlAgilityPack beibehalten

c# html-agility-pack html-parsing

Frage

Ich versuche, einen Text in der HTML-Zeichenfolge mit Html Agility Pack hervorzuheben . Ich bin in der Lage, Text durch <span class="highlight"> zu ersetzen, aber wenn ich den Text ersetze, ist der Leerraum um das span-Tag verschwunden. Wenn beispielsweise der Text "This text will be highlighted" lautet, wird der Text wie folgt angezeigt: "This text will be<span class='highlighted'>highlighted</span>" und Leerzeichen vor dem span-Tag entfernt. Dies führt die Wörter vor und nach der Spanne mit dem Spanne Text zusammen. Ich mache einfach eine rekursive Schleife wie folgt:

  1. Ruft den ersten untergeordneten Knoten ab
  2. Wenn der Knoten #text , dann node.InnerHtml = InnerText.Replace(search_term, span_code)
  3. Wenn der Knoten einen untergeordneten Knoten hat, gehen Sie zu Schritt 1
  4. Gehe zum nächsten Geschwister und gehe dann zu Schritt 1

Dann erhalte ich den InnerHtml des HtmlDocument . Ich habe versucht Platz vor <span und nach </span> , aber es entfernt sie. Ich habe versucht, HtmlDocument.OptionWriteEmptyNodes = true; Es hat auch nicht funktioniert. Ich ersetzte alle "\n" und "\t" Zeichen durch ein Leerzeichen vor dem Erstellen von HtmlDocument und nach dem HtmlDocument der HTML-Zeichenfolge, und es hat keine der beiden Auswirkungen.

Wie kann ich den Leerraum bei der Verwendung von Html Agility Pack erhalten?

Akzeptierte Antwort

Eigentlich HtmlDocument.OptionWriteEmptyNodes = true; tat was ich will. Ich habe es jetzt erkannt.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum