我想创建一个 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 程序并获取标签的属性和内容。那么还有其他解决方法吗?