HtmlAgilityPack Das Zeichen "", hexadezimaler Wert 0x22, kann nicht in einem Namen enthalten sein

.net html html-agility-pack vb.net

Frage

Diese Linie:

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

Erzeugt diesen Fehler:

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

Dies ist die Zeile im HTML-Code, die falsch ist:

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

Akzeptierte Antwort

Das liegt daran, dass XDocument für den Umgang mit XML gedacht war und daher keine Javascript-Zeichenketten unterstützt. XDocument denkt über diesen Teil nach: <scr" , da der Beginn eines XML-Knotens und das doppelte Anführungszeichen ( " ) im XML-Knotennamen als ungültig betrachtet werden.

Ich habe XDocument in der Antwort auf Ihre vorherige Frage verwendet , um schön formatierte XML-Ausgaben in der Konsole zu erhalten, und ich habe das getan, weil ich genau weiß, dass mein HTML XML-konform ist. In diesem Fall ist Ihr HTML aus XML-Sicht nicht gültig und es ist nicht klar, was Sie hier mit XDocument erreichen XDocument . Wenn Sie das Ergebnis einfach überprüfen müssen, indem Sie Änderungen am ursprünglichen HTML vorgenommen haben, können Sie htmldoc.DocumentNode.OuterHtml entweder direkt drucken oder den HTML- htmldoc.DocumentNode.OuterHtml wie htmldoc.DocumentNode.OuterHtml in einer neuen Datei speichern:

htmldoc.Save("path_to_new_file.html")



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