Problema:
El contenido de una etiqueta no se devuelve completo. El texto de retorno solo tiene la parte antes de la referencia de entidad.
<thetext> Opening repository resource always open the default text editor and doesn't honor any mapping between resource types and editors. </thetext> |
En el fragmento XML anterior, contiene un [‘] adentro. El evento event.asCharacters (). GetData () no devuelve todo el texto, sino solo la parte anterior [‘].
if (event.asStartElement().getName().getLocalPart().equals("thetext")) { event = eventReader.nextEvent(); System.out.println("thetext: " + event.asCharacters().getData()); } |
El problema se soluciona estableciendo una de las propiedades de la fábrica de entrada.
inputFactory.setProperty(XMLInputFactory.IS_COALESCING, true); |
Esto requiere que el analizador reemplace las referencias de entidades internas con su texto de reemplazo y las informe como caracteres.
Referencia: http://download.oracle.com/javase/6/docs/api/javax/xml/stream/XMLInputFactory.html#IS_COALESCING