Domanda

Sto lavorando con JDOM al momento. Non riesco a pensare a una soluzione che quello che dovrebbe essere essenzialmente un problema facile.

Ho una stringa XHTML valida:

<b>M&amp;A</b> &euro;

Come si inserisce questo nel DOM XML come segue?

<parentNode>
<b>M&amp;A</b>

</parentNode>

(questo XML va poi via a un trasformatore XSL, che poi rende XHTML per il browser)

Sono venuto su con le seguenti soluzioni 'pseudo', ma non sono sicuro se sono possibili:

entità Unescape che non sono entità XML, quindi inserire.
Reinscape solo entités XML, quindi HTML Unescape l'intera stringa, quindi inserire.

Taras

È stato utile?

Soluzione

Credo che si può utilizzare JTidy di trasformare entità con nome a quelli numerati. Dopo di che, l'XHTML è XML valido.

Altri suggerimenti

While &euro; is valid XHTML entity it is not valid XML one.

Unfortunately, I don't know anything about JDOM, but if it is possible you may try adding DTD entity declarations like <!ENTITY euro "€">. And, maybe, put all XHTML tags into their proper namespace (<parentNode xmlns:x="http://www.w3.org/1999/xhtml"><x:b>...</x:b></parentNode>)

Create a string containing

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

+

your XHTML content, in this case <b>M&amp;A</b> &euro;

+

</html>

and then parse this string to obtain a document. Then get all the content inside the root element, that will be your XHTML content and place it inside your parentNode element. You may need to take into account that the content comes from a different document.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top