我想创建一个将用于存储Java程序结构的XML文件。我能够成功解析Java程序并根据需要创建标签。由于Java源代码可能使用大量实体引用和保留字符,如&
,<
,>
,&
,所以当我试图将源代码包含在我的标记中时会出现问题。我无法创建有效的XML。如何在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程序并获取标签的属性和内容。那么是否还有其他解决方法?
+ +(加号) – 2017-03-15 15:57:48
@LarsVandeDonk“+”可以按照原样行,不需要用XML转义它。也许你在谈论URL转义? – izogfif 2017-07-03 17:48:01