¿Cuál es una buena manera de codificar texto arbitrario en XML de una manera legible por human?

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

  •  09-12-2019
  •  | 
  •  

Pregunta

Lo que hoy he hecho es poner el texto en las etiquetas de CDATA, y tratar la posibilidad de que aparezcan finales de CDATA en el texto dividiéndolo en múltiples CDATAS adyacentes.

No estoy seguro de esto, ¡pero los analizadores XML pueden dejar de preservar las nuevas líneas dentro de las etiquetas CDATA, ¡corrija?Esto significaría escaparlos de alguna manera también ...

Quiero generar estos archivos XML usando Perl y analizarlos con C ++ (usando expatriados), Java y C #.

Lo más importante es que quiero que los archivos resultantes sean legibles / modificables de forma humana.¿Alguien sabe de algún esquema de codificación que se ajuste a estas necesidades?Estoy usando esto para almacenar datos para una base de datos, por lo que necesita aceptar texto arbitrario, y al analizar el mismo texto.

¿Fue útil?

Solución

XML Ya admite esto, no necesita hacer nada especial y, ciertamente, no necesita usar CDATA.Simplemente use una biblioteca decente, asegúrese de que está utilizando la codificación UTF-8 y agregue un nodo de texto.Si algo está "perdiendo" nuevas líneas, entonces es un error.XML ya tiene una "codificación" (escape) que es relativamente legible.También es estándar lo que lo hace mucho más útil que inventar el suyo.

ver, por ejemplo, https://stackoverflow.com/a/1140802/111772

Otros consejos

Podría codificar el contenido, si el contenido fue HTML, por ejemplo:

<html>&lt;b&gt;Bold Text&lt;/b&gt;</html>

vs.

<html><![CDATA[<b>Bold Text</b>]]></html>

hmm, por lo que puedo decir, las secciones de CDATA son para datos de caracteres, y los caracteres de control no cuentan.Supongo que esto significa que, sobre la cuestión de las nuevas líneas, los analizadores XML hacen una convocatoria sobre si son un carácter de control o no (históricamente, sí, pero de manera prosa ... no.).

Si bien impediría la legibilidad, puede codificar nuevas líneas usando secuencias de escape, Suponiendo que se está escapando correctamente, el análisis debe convertirlo correctamente, solo tendrá que tomar nota de ella al codificar.

Otra opción, que viola completamente su requisito de "legibilidad con el humano" es BASE-64 codificar el texto, esto le permite codificar información arbitraria en el XML.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top