10.3.38 getXmlElem(XMLデータの要素の内容の取得)
形式
getXmlElem [-e 文字コード] 要素名 [ファイルパス名]
機能
引数に指定されたXMLファイルから要素名を検索し,完全一致したすべての要素の内容を出力します。要素の内容に含まれる改行は削除して出力されます。
引数
- -e 文字コード
-
- Windows版
-
XMLファイルの文字コードを指定します。指定できる値は「SJIS」または「UTF8」です。このオプションを指定しない場合,文字コードをUTF8として扱います。
- UNIX版
-
XMLファイルの文字コードを環境変数LANGの値の形式で指定します。指定できる値は,「2.2.4 Advanced Shellを使用するときのエンコーディング」を参照してください。
このオプションを指定しない場合,Advanced Shellが動作する環境の環境変数LANGの値の形式で文字コードを指定したと仮定します。
- 要素名
-
検索する要素名を指定します。
- ファイルパス名
-
XMLファイルのパスを指定します。ファイルパス名を指定しない場合,標準入力から入力します。
標準出力への出力
XMLデータの要素の内容。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1以上 |
エラー終了 |
注意事項
-
一致する要素が見つからなかった場合,エラー終了します。
-
出力する要素の内容には,記述された文字列すべてが含まれます。そのため,CDATAセクションなども出力されます。
-
要素の内容に含まれる「&」などの実体参照の記述はそのまま出力されます。
要素名に正規表現のメタキャラクタが含まれている場合,\でエスケープして指定してください。
- 例
-
要素名「name+」を検索する場合,次のように指定します。
getXmlElem 'name\+' test.xml
-
同名の要素をネストしている場合,要素の内容を正しく出力できません。
- 例
-
<value><value>100</value></value>
ただし,ネストされた要素に別の要素を含んでいる場合,次のようにすることで,最も内側の要素の内容を出力できます。
- 例(test.xml)
-
<value><name><value>100</value></name></value>
getXmlElem name test.xml | getXmlElem value
-
この部品では,adshmktempコマンドを使用して一時ファイルを作成します。そのため,部品実行中に強制終了要求を受けると,一時ファイルが残ることがあります。この場合は,手動で一時ファイルを削除してください。一時ファイルは,環境ファイルのTEMP_FILE_DIRパラメーターで定義したディレクトリに次の命名規則で作成されます。
getXmlElem_ジョブ識別子_プロセスID_時間情報_ファイル通し番号
使用例
XMLデータ(data.xml) <data> <city> <name id="0001">Yokohama</name> <name id="0002">Kawasaki</name> </city> </data> getXmlElem -e SJIS name data.xml # 以下の内容が出力される。 Yokohama Kawasaki XMLデータ(data2.xml) <name> <city> <name id="0001">Yokohama</name> <name id="0002">Kawasaki</name> </city> </name> getXmlElem city data2.xml | getXmlElem name # 以下の内容が出力される。 Yokohama Kawasaki