3

我在 xml 文件中放置了一个 SQL 查询(包含 < 符号),并且我试图在 java 程序中读取该查询。但它显示异常

“org.xml.sax.SAXParseException:元素的内容必须由格式良好的字符数据或标记组成。”

谁能帮我解决上述问题?

4

3 回答 3

6

您需要使用 XML 实体进行转义:

  • &编码为&amp;
  • <编码为&lt;

从技术上讲,您不需要逃避以下内容,但这样做很常见:

  • >编码为&gt;
  • "编码为&quot;
  • '编码为&apos;

有关更多信息,请参阅此 Wikipedia 文章了解更多信息

于 2012-06-08T07:02:52.243 回答
4

使用 CDATA

CDATA -(未解析的)字符数据

CDATA代表字符数据,这意味着这些标签之间的数据包括可以解释为 XML 标记的数据,但不应该

CDATA 一词用于表示不应由 XML 解析器解析的文本数据。

“<”和“&”之类的字符在 XML 元素中是非法的。

"<" 将产生错误,因为解析器将其解释为新元素的开始。

"&" 将产生错误,因为解析器将其解释为字符实体的开始。

一些文本,如 JavaScript 代码,包含很多“<”或“&”字符。为避免错误,脚本代码可以定义为 CDATA。

解析器会忽略 CDATA 部分中的所有内容。

例子:

<![CDATA[ select <abcddata> ]]>
于 2012-06-08T07:04:18.913 回答
3
< = &gt;
> = &lt;

这些是 HTML 实体,应该被接受

于 2012-06-08T07:03:07.867 回答