我在 xml 文件中放置了一个 SQL 查询(包含 < 符号),并且我试图在 java 程序中读取该查询。但它显示异常
“org.xml.sax.SAXParseException:元素的内容必须由格式良好的字符数据或标记组成。”
谁能帮我解决上述问题?
您需要使用 XML 实体进行转义:
&
编码为&
<
编码为<
从技术上讲,您不需要逃避以下内容,但这样做很常见:
>
编码为>
"
编码为"
'
编码为'
有关更多信息,请参阅此 Wikipedia 文章了解更多信息
使用 CDATA
CDATA代表字符数据,这意味着这些标签之间的数据包括可以解释为 XML 标记的数据,但不应该
CDATA 一词用于表示不应由 XML 解析器解析的文本数据。
“<”和“&”之类的字符在 XML 元素中是非法的。
"<" 将产生错误,因为解析器将其解释为新元素的开始。
"&" 将产生错误,因为解析器将其解释为字符实体的开始。
一些文本,如 JavaScript 代码,包含很多“<”或“&”字符。为避免错误,脚本代码可以定义为 CDATA。
解析器会忽略 CDATA 部分中的所有内容。
例子:
<![CDATA[ select <abcddata> ]]>
< = >
> = <
这些是 HTML 实体,应该被接受