HtmlAgilityPack Il carattere "" ", il valore esadecimale 0x22, non può essere incluso in un nome

.net html html-agility-pack vb.net

Domanda

Questa linea:

    Dim NewHTMLString As String = XDocument.Parse(htmldoc.DocumentNode.OuterHtml).ToString()

Produce questo errore:

    The '"' character, hexadecimal value 0x22, cannot be included in a name.

Questa è la riga nell'HTML che dice che è sbagliata:

    if ( typeof JSON != 'object' || !JSON.stringify || !JSON.parse ) { document.write( "<scr" + "ipt type=\"text\/javascript\" src=\"http:\/\/blahblah"><\/script>\n" ); };

Risposta accettata

Questo perché XDocument intendeva trattare con XML, quindi non supporta la stringa Javascript arbitraria. XDocument pensa che questa parte: <scr" , come l'inizio di un nodo XML e il carattere a doppia virgola ( " ) nel nome del nodo XML sia considerato non valido.

Stavo usando XDocument nella risposta alla tua domanda precedente per ottenere un output XML meravigliosamente formattato in console, e l'ho fatto perché so esattamente che il mio HTML è compatibile con XML. In questo caso, il tuo codice HTML non è valido dal punto di vista XML e non è chiaro cosa stai cercando di ottenere usando XDocument qui. Se hai semplicemente bisogno di controllare il risultato della modifica apportata al codice HTML originale, puoi stampare direttamente htmldoc.DocumentNode.OuterHtml per consolare o salvare l'HTML in un nuovo file in questo modo:

htmldoc.Save("path_to_new_file.html")


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é