Mantieni spazio bianco con HtmlAgilityPack

c# html-agility-pack html-parsing

Domanda

Sto cercando di evidenziare un testo nella stringa html utilizzando Html Agility Pack . Sono in grado di sostituire il testo con <span class="highlight"> , ma quando sostituisco il testo, lo spazio bianco attorno al tag span è scomparso. Ad esempio, se il testo è "This text will be highlighted" , risulta come "This text will be<span class='highlighted'>highlighted</span>" , e lo spazio bianco andato prima del tag span. Questo unisce le parole prima e dopo lo span con il testo span. Semplicemente faccio un ciclo ricorsivo del genere:

  1. Ottieni il primo nodo figlio
  2. se il nodo è #text , than node.InnerHtml = InnerText.Replace(search_term, span_code)
  3. se il nodo ha un nodo figlio vai al punto 1
  4. Vai al fratello successivo quindi vai al passaggio 1

Quindi ottengo il InnerHtml di HtmlDocument come risultato. Ho provato a mettere lo spazio prima <span e dopo </span> , ma li ho rimossi. Ho provato HtmlDocument.OptionWriteEmptyNodes = true; non ha funzionato neanche. Ho sostituito tutti i caratteri "\n" e "\t" con uno spazio prima di creare HtmlDocument e dopo aver ottenuto la stringa html e non ha avuto alcun effetto su nessuno dei due.

Come posso conservare lo spazio bianco quando utilizzo Html Agility Pack?

Risposta accettata

In realtà HtmlDocument.OptionWriteEmptyNodes = true; fatto quello che voglio Ho capito ora.




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché