カテゴリ:

半構造化データ関数 (解析)

PARSE_XML

入力文字列を XML ドキュメントとして解釈し、 OBJECT 値を生成します。入力が NULL の場合、出力は NULL です。

こちらもご参照ください。

CHECK_XML

構文

PARSE_XML( <string_expr> )

引数

文字列式

この式は VARCHAR に評価する必要があります。VARCHAR には有効な XML が含まれている必要があります。

戻り値

戻り値のデータ型は OBJECT です。OBJECT には、 XML の内部表現が含まれています。

使用上の注意

  • XML ドキュメントにある要素のコンテンツはすべてテキストです。PARSE_XML は、一部の XML データをテキストからネイティブ(Snowflake SQL) データ型 に変換しようとします。

    • NUMERIC および BOOLEAN:

      PARSE_XML は、明らかに数値およびブールである値を、これらの値が印刷されると、テキスト上で同一の結果が生成されるネイティブ表現に変換しようとします。たとえば、10進数を解析するとき、 PARSE_XML は、123.45を DOUBLEではなく NUMBER(5,2)として処理することにより、表現の正確さを保持しようとします。ただし、

      • 科学表記法の数値(1.2345e +02など)、または範囲またはスケールの制限のために固定小数点として保存できない数値は、 DOUBLE として保存されます。

      • XML 要素の内容が小数点以下の数字の場合、 PARSE_XML は後続のゼロを切り捨てる可能性があります。

    • TIMESTAMP, DATE, TIME, BINARY:

      XML は、 TIMESTAMP、 DATE、 TIME、または BINARY などの値をネイティブに表さないため、これらは XML 内で文字列として表される必要があります。PARSE_XML は、これらの値を自動的に認識しません。これらは文字列として保持されるため、ユーザーは、必要に応じて値を文字列からネイティブ SQL データ型に変換する必要があります。

  • XML 属性は、名前/値のペアの 順不同 コレクションです。PARSE_XML 関数は必ずしも順序を保持しません。たとえば、テキストを XML に変換してからテキストに戻すと、異なる順序で元の情報を含む文字列が生成される場合があります。

  • 文字列から XML に変換する際に、要素間の空白に変化が見られる場合があります。

CREATE TABLE xtab (v OBJECT);

INSERT INTO xtab SELECT PARSE_XML(column1) AS v
  FROM VALUES ('<a/>'), ('<a attr="123">text</a>'), ('<a><b>X</b><b>Y</b></a>');

SELECT * FROM xtab;

-------------------------+
           V             |
-------------------------+
 <a></a>                 |
 <a attr="123">text</a>  |
 <a><b>X</b><b>Y</b></a> |
-------------------------+
最上部に戻る