我在xml文件中放置一个SQL查询(包含< symbol),我试图在java程序中读取该查询。 但它正在显示异常
“org.xml.sax.SAXParseException:元素的内容必须包含在内 格式良好的字符数据或标记。“
任何人都可以帮我解决上述问题吗?
答案 0 :(得分:7)
您需要使用XML实体进行转义:
&
编码为&
<
编码为<
从技术上讲,您不需要逃避以下操作,但通常会这样做:
>
编码为>
"
编码为"
'
编码为'
有关详细信息,请参阅this Wikipedia article了解更多信息
答案 1 :(得分:4)
使用CDATA
CDATA - (Unparsed) Character Data
CDATA 代表字符数据,这意味着这些标记之间的数据包含可以解释为XML标记的数据,但不应该
术语CDATA用于不应由XML解析器解析的文本数据。
像“&lt;”这样的字符和“&amp;”在XML元素中是非法的。
“&LT;”将生成错误,因为解析器将其解释为新元素的开头。
“&安培;”将生成错误,因为解析器将其解释为字符实体的开头。
有些文字,比如JavaScript代码,包含很多“&lt;”或“&amp;”字符。为避免错误,脚本代码可以定义为CDATA。
解析器会忽略CDATA部分内的所有内容。
示例:
<![CDATA[ select <abcddata> ]]>
答案 2 :(得分:3)
< = >
> = <
这些是HTML实体,应该被接受