Quiero crear un archivo XML que se utilizará para almacenar la estructura de un programa Java. Puedo analizar con éxito el programa Java y crear las etiquetas según sea necesario. El problema surge cuando trato de incluir el código fuente dentro de mis etiquetas, ya que el código fuente de Java puede usar una gran cantidad de referencias de entidades y caracteres reservados como &
, <
, >
, &
. No puedo crear un XML válido.¿Cómo incluyo &, <, > etc. en los valores de atributo XML
Mi XML debe ir como esto:
<?xml version="1.0"?>
<prg name="prg_name">
<class name= "class_name>
<parent>parent class</parent>
<interface>Interface name</interface>
.
.
.
<method name= "method_name">
<statement>the ordinary java statement</statement>
<if condition="Conditional Expression">
<statement> true statements </statement>
</if>
<else>
<statement> false statements </statement>
</else>
<statement> usual control statements </statement>
.
.
.
</method>
</class>
.
.
.
</prg>
como no, pero el problema es expresiones condicionales de if
u otras declaraciones tienen una gran cantidad de &
u otros símbolos reservados en ellos lo que impide XML de conseguir validado. Dado que todos estos datos (código fuente) los da el usuario, tengo poco control sobre él. Escapar de los personajes será muy costoso en términos de tiempo.
Puedo usar CDATA para escapar del texto del elemento, pero no se puede usar para los valores de los atributos que contienen expresiones condicionales. Estoy usando la gramática de Java Antlr para analizar el programa Java y obtener los atributos y el contenido de las etiquetas. Entonces, ¿hay alguna otra solución para esto?
¿Qué tal un + (más) –
@LarsVandeDonk "+" está bien para ir como está, no es necesario que se escape en XML. ¿Tal vez estabas hablando de escape de URL? – izogfif