Ich verwende Saxon 9, um ungültige HTML-Quellen zu analysieren. Insbesondere hat die html href Werte wie folgt aus:XSLT und XQuery bei ungültiger HTML-Eingabe, Teile von URI sehen wie Entitäten aus
< a href = "blah.asp fn = view & g_varID = 1234" > some text </a >
Ich erhalte Fehler:
"Fehler vom XML-Parser gemeldet: Der Verweis auf die Entität" g_varID "muss mit die ';' Trennzeichen. "
Der XML-Parser liest die Zeichenfolge "& g_varID" und beschwert sich, dass ein ";" um die Entität zu begrenzen. Aber das ist natürlich nicht als HTML-Entity gedacht - es ist nur ein Stück von einem URI.
Wie kann ich dem Parser mitteilen, ihn zu ignorieren? Hinweis: Ich verwende nicht-Schema-bewusste Saxon, nicht Saxon-SA.
In XML können string-typed Attribute ("CDATA-Attribute") Entity-Referenzen enthalten. (CDATA-Abschnitte können nicht, aber sie sind eine andere Sache). Es gibt sogar eine spezielle Warnung über Ampersands in Attributwerten in einem Anhang zur XHTML-Spezifikation: http://www.w3.org/TR/xhtml1/#C_12 –
Diese Verwirrung über "CDATA" stammt aus der SGML-Ära. Es scheint hier eine gute Zusammenfassung zu geben: http://www.flightlab.com/~joe/sgml/cdata.html –