我想创建一个XML文件,用来存储Java程序的结构。我已经成功解析了Java程序,并按要求创建了标签。但当我尝试在标签内包含源代码时,会遇到问题,因为Java源代码可能使用大量实体引用和保留字符,例如&
,<
,>
,&
等。我无法创建有效的XML。
我的XML应该像这样:
<?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>
就像这样,但是问题在于if
或其他语句的条件表达式中有很多&
或其他保留符号,这会阻止XML获得验证。由于所有这些数据(源代码)都是由用户提供的,我对其几乎没有控制权。转义这些字符将非常耗时。
我可以使用CDATA来转义元素文本,但不能用于包含条件表达式的属性值。我正在使用Antlr Java语法解析Java程序并获取标记的属性和内容。那么是否有任何其他解决方法呢?