Pergunta

Eu estou usando Saxon 9 para analisar fontes de HTML inválido. Especificamente o html tem valores href como o seguinte:

algum texto

Estou recebendo erros:

"Erro relatado pelo parser XML: A referência a entidade 'g_varID' deve terminar com a ';' delimitador ".

O analisador XML está lendo a string "& g_varID" e reclamando que não deve haver um ";" para delimitar a entidade. Mas, é claro, isso não é concebido como uma entidade HTML. - É apenas um pedaço de um URI

Como posso dizer ao analisador para ignorá-lo? Nota:. Eu estou usando não-schema-aware Saxon, não Saxon-SA

Foi útil?

Solução

Certifique-se de ter um DOCTYPE xhtml correta. De acordo com o xhtml1-strict.dtd que eu estou olhando para CDATA, o atributo href é declarado, não PCDATA, o que significa literal e é perfeitamente ok e não deve ser analisado como uma entidade.

Outras dicas

Se o seu HTML não é XML, então como você espera que qualquer processador XML para processá-lo?

Como mencionado acima, este não é um XML válido, é HTML. Este problema particular, porém, é que HTML arrumado limpa por padrão: http: // www. w3.org/People/Raggett/tidy/. Use-o com os seguintes argumentos de linha de comando para converter HTML em XHTML:

tidy -asxhtml foo.html > foo.xhtml

E então você deve ser capaz de executá-lo através de seu XSLT.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top