XSLT et XQuery sur l'entrée html invalide, des morceaux de URI ressemblent à des entités

StackOverflow https://stackoverflow.com/questions/879294

  •  22-08-2019
  •  | 
  •  

Question

J'utilise Saxon 9 pour analyser les sources HTML non valides. Plus précisément, le html a des valeurs href comme suit:

certains texte

Je reçois des erreurs:

"erreur signalée par l'analyseur XML: La référence à l'entité « doit g_varID » terminer par   le ';' delimiter. "

L'analyseur XML est en train de lire la chaîne « & g_varID » plaint qu'il devrait y avoir un « ; » pour délimiter l'entité. Mais, bien sûr, ce ne prétend pas être une entité HTML -. Il est juste un morceau d'un URI

Comment puis-je dire à l'analyseur de l'ignorer? Note:. J'utilise non-schéma courant saxon, pas Saxon-SA

Était-ce utile?

La solution

Assurez-vous que vous avez un DOCTYPE xhtml correct. Selon le xhtml1-strict.dtd que je regarde, l'attribut href est déclaré CDATA, non PCDATA, ce qui signifie littéralement et est tout à fait correct et ne doit pas être interprétée comme une entité.

Autres conseils

Si votre code HTML est pas XML, alors comment voulez-vous tout processeur XML à ce processus?

Comme mentionné ci-dessus, ce n'est pas XML valide, il est HTML. Ce problème particulier, cependant, est celui qui nettoie bien rangé HTML par défaut: http: // www. w3.org/People/Raggett/tidy/ . Utilisez-le avec les arguments de ligne de commande ci-dessous pour convertir le HTML en XHTML:

tidy -asxhtml foo.html > foo.xhtml

Et alors vous devriez être en mesure de l'exécuter à travers votre XSLT.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top