HTML Agility Pack - ReplaceNode non modifica il InnerHTML del corpo

html-agility-pack innerhtml replace

Domanda

ho questo

Il corpo:

<body><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent leo leo, ultrices eu venenatis et, rutrum fringilla dolor.</p></body>

Il codice:

<body><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent leo leo, ultrices eu venenatis et, rutrum fringilla dolor.</p></body>

Dopo aver eseguito questa operazione, InnerHtml del nodo del corpo rimane lo stesso dall'inizio, sebbene OutterHtml o InnerText mostrino il buon risultato. C'è qualcosa che non va nel mio codice?

Il risultato:

<body><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent leo leo, ultrices eu venenatis et, rutrum fringilla dolor.</p></body>

Risposta accettata

Penso che potrebbe essere qualcosa a che fare con il modo in cui si aggiungono i nodi per sostituire i vecchi nodi. Verifica se questa soluzione funziona per il troncamento del nodo di testo. Ho fatto un test rapido e tutti e tre mi hanno dato gli stessi risultati.

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlString);
HtmlNode body = doc.DocumentNode.SelectSingleNode("//body");

foreach (var paragraph in body.Descendants("p"))
{
    paragraph.InnerHtml = paragraph.InnerHtml.Substring(0, 25) + "...";
}

Console.WriteLine(body.InnerHtml);
Console.WriteLine(body.InnerText);
Console.WriteLine(body.OuterHtml); 



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é