Tengo una aplicación donde necesito analizar XML y conservar el texto sin formato (por ejemplo, no analizar entidades, no convertir espacios en blanco en atributos, mantener el orden de los atributos , etc.) en un programa Java.parsing/scanning/tokenizing "raw XML"
He pasado varias horas tratando de usar StAX, SAX, XSLT, TagSoup, etc. antes de darme cuenta de que ninguno de ellos hace esto. No puedo darme el lujo de dedicar mucho más tiempo a atacar este problema, y analizar el texto manualmente parece altamente no trivial. ¿Hay alguna biblioteca Java que pueda ayudarme a tokenizar el XML?
editar: ¿por qué estoy haciendo esto? - Tengo un gran archivo XML que quiero hacer un pequeño número de cambios localizados programáticamente, que necesitan ser revisados. Es muy valioso poder usar una herramienta diff. Si el analizador/analizador normaliza el XML, todo lo que veo es "tinta roja" en la herramienta diff. La aplicación que produce el XML en primer lugar no es algo que pueda haber cambiado fácilmente para producir "XML canónico", si existe tal cosa.
¿Por qué necesita conservar el texto sin formato? – jmucchiello
El texto sin formato puede tener nuevas líneas, etc., que quiera conservar. orden de atributo y similares podría ser importante para su uso. –
De acuerdo con la especificación XML, los caracteres que no son de marcado, incluidos los espacios en blanco, como las líneas nuevas, se pasan a la aplicación: http://www.w3.org/TR/REC-xml/#sec-white-space –