Sud*_*udh 40 java xml xml-attribute entityreference
我想创建一个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>
Run Code Online (Sandbox Code Playgroud)
像这样,但问题是条件表达式if
或其他语句中有很多&
或其他保留符号阻止XML得到验证.由于所有这些数据(源代码)都是由用户提供的,因此我无法控制它.逃避角色在时间上将是非常昂贵的.
我可以使用CDATA来转义元素文本,但它不能用于包含条件表达式的属性值.我正在使用Antlr Java语法来解析Java程序并获取标记的属性和内容.那么还有其他解决方法吗?
Bal*_*a R 73
你将不得不逃脱
" to "
' to '
< to <
> to >
& to &
Run Code Online (Sandbox Code Playgroud)
对于xml.
izo*_*fif 21
在XML属性中,您必须转义
" with "
< with <
& with &
Run Code Online (Sandbox Code Playgroud)
如果用双引号("
)包装属性值,例如
<MyTag attr="If a<b & b<c then a<c, it's obvious"/>
Run Code Online (Sandbox Code Playgroud)
MyTag
含有attr
带文本属性的含义标记If a<b & b<c then a<c, it's obvious
- 注意:无需使用'
转义'
字符.
如果用单引号('
)包装属性值,则应该转义这些字符:
' with '
< with <
& with &
Run Code Online (Sandbox Code Playgroud)
你可以"
按原样写作.逃逸>
用>
的属性文字不要求,例如<a b=">"/>
是格式良好的XML.