XMLPARSE
XMLPARSE 函数将参数解析为 XML 文档并返回 XML 值。
- 文档
- 指定要解析的字符串表达式必须求值为符合 XML 1.0的格式正确的 XML 文档。
- 字符串表达式
- 返回内置字符, Unicode 图形或二进制字符串值的表达式。 如果使用参数标记,那么必须将其显式强制类型转换为其中一种受支持的数据类型。
- STRIP WHITESPACE 或 PRESERVE WHITESPACE
- 指定是否保留输入参数中的空格。 如果两者都未指定,那么缺省值为 STRIP WHITESPACE。
- 条带空格
- 指定除非最近包含的元素具有属性 xml:space = 'preserve',否则将除去空格字符。 CDATA 部分中的空格字符也受此选项影响。
- 保留空格
- 指定将保留所有空格,即使最近包含的元素具有属性 xml:space = 'default'也是如此。
此函数的结果为 XML。 如果 string-expression 的结果可以为空,那么结果可以为空; 如果 string-expression 的结果为空,那么结果为空值。 结果的 CCSID 由 string-expression确定。 如果 string-expression 的 CCSID 为 65535 ,那么将使用 SQL_XML_DATA_CCSID QAQQINI 选项中的值。
输入字符串可能包含用于标识 XML 文档中字符的编码的 XML 声明。 XML 声明中的编码必须与 string-expression的编码匹配。
示例
示例 1: 将 XML 文档插入到 EMP 表中,并保留原始 XML 文档中的空格。
INSERT INTO EMP (ID, XVALUE) VALUES(1001,
XMLPARSE(DOCUMENT '<a xml:space=''preserve''> <b> <c>c</c>b </b> </a>'
PRESERVE WHITESPACE))XMLPARSE 将把 insert 语句的值视为等同于以下值:<a xml:space='preserve'> <b> <c>c</c>b </b> </a>示例 2: 将 XML 文档插入到 EMP 表中,并除去原始 XML 文档中的空格。
INSERT INTO EMP (ID, XVALUE) VALUES(1001,
XMLPARSE(DOCUMENT
'<a xml:space=''preserve''> <b xml:space=''default''> <c>c</c>b </b> </a>'
STRIP WHITESPACE))XMLPARSE 将把 insert 语句的值视为等同于以下值:<a xml:space='preserve'>
<b xml:space='default'><c>c</c>b </b>
</a>