Skip to content

Latest commit

 

History

History
217 lines (116 loc) · 6.33 KB

moyo_xml.md

File metadata and controls

217 lines (116 loc) · 6.33 KB

Module moyo_xml

XMLに関する処理を集めたユーティリティモジュール.

Copyright (c) 2013-2014 DWANGO Co., Ltd. All Rights Reserved.

Description

このモジュールでは、XMLの表現形式として、以下のような三要素のタプルが採用されている。

  {要素名, 属性連想リスト, 子要素およびテキストのリスト}

また要素名や属性のキー及び値、テキストは、原則としてバイナリで保持されるようになっている。
(ただし、要素名や属性のキーは、アトムで保持することも可能。
また、XML文字列を生成する場合の入力値としては、もう少し制限の緩い表現が使用可能となっている)

例えば "<root attr=\"1\">text1<child />text2</root>" といったXML文字列をパースすると次のような結果が返ってくる:

  > moyo_xml:parse_binary(<<"<root attr=\"1\">text1<child />text2</root>">>, []).
  {{<<"root">>,
    [{<<"attr">>,<<"1">>}],
    [<<"text1">>,{<<"child">>,[],[]},<<"text2">>]},
   <<>>}

Data Types


parse_option() = {key_type, binary | atom | existing_atom} | {allow_external_entity, true | false}

[key_type オプション]
パース結果XMLの要素名および属性名をどのような型で表現するかを指定する.
binaryならバイナリ型、atomならアトム型.
existing_atomの場合は、名前に対応するアトムが既に存在する場合はアトム型、存在しないならバイナリ型となる.
デフォルト値はbinary.

[allow_external_entity オプション]
外部エンティティ参照を許可するかどうかを指定する.
true であれば外部エンティティ参照が許可される.
false とすることで外部エンティティ参照を禁止できる.
デフォルト値はfalse.


xml() = xml_element()

xml_attribute_key() = atom() | binary()

xml_attribute_value() = iodata() | term()

parse系関数の結果としては常にバイナリが返る


xml_content() = xml_element() | xml_text()

xml_element_name() = atom() | binary()

xml_text() = iodata() | term()

parse系関数の結果としては常にバイナリが返る

Function Index

parse_binary/2XML文字列(バイナリ)をパースする.
parse_file/2XMLファイルをパースする.
to_iolist/1XMLをiolist形式の文字列に変換する.
to_iolist/2XMLをiolist形式の文字列に、指定されたオプションに従って変換する.

Function Details

parse_binary/2


parse_binary(InputXml, Options::[parse_option()]) -> {xml(), RestXml}
  • InputXml = binary()
  • RestXml = binary()

XML文字列(バイナリ)をパースする.

パース結果XMLの属性値およびテキストの型は常にバイナリとなる.
パースに失敗した場合は例外が送出される.

parse_file/2


parse_file(FilePath, Options::[parse_option()]) -> {xml(), RestXml}

XMLファイルをパースする.

パース結果XMLの属性値およびテキストの型は常にバイナリとなる.
パースに失敗した場合は例外が送出される.

to_iolist/1


to_iolist(Xml::xml()) -> XmlString::iolist()

XMLをiolist形式の文字列に変換する

変換に失敗した場合は例外が送出される.
要素の属性値や内容はmoyo_string:to_string/1によって、適宜文字列に変換される.

to_iolist/2


to_iolist(Xml::xml(), Options::[moyo_string:encode_option()]) -> XmlString::iolist()

XMLをiolist形式の文字列に、指定されたオプションに従って変換する

変換に失敗した場合は例外が送出される.
要素の属性値や内容はmoyo_string:to_string/2によって、適宜文字列に変換される.