項目中の文字列を置換するには、通常「Excel表を生成」手順で、制御シートキーワード「文字列編集」に置換、全置換を指定して行います。この手法では、変換パターンが1種類しか指定できないため、2種類以上の変換パターンが必要な場合は、「抽出データの編集」手順を使用します。
「抽出データの編集」手順の設定画面
「入力ファイル名」で指定したファイルの例
抽出データ(xoBlos XML形式)のファイル名(パス名)を指定します。この例では、業務要件として多い「(株)への表記統一」をとりあげます。「株式会社」、「(株)」半角カッコ挟み、「㈱」環境依存文字を、「(株)」全角カッコ挟みに統一する要件です。
input.xml の内容
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <Root> <ROWS> <会社コード>1001</会社コード> <会社名>オフピーク(株)</会社名> <所在地>中央区</所在地> </ROWS> <ROWS> <会社コード>1002</会社コード> <会社名>株式会社マーボーパラダイス</会社名> <所在地>品川区</所在地> </ROWS> <ROWS> <会社コード>1003</会社コード> <会社名>㈱マシュマロプラネット</会社名> <所在地>港区</所在地> </ROWS> </Root>
「変換設定ファイル名」で指定したファイルと、その変換結果例
変換設定ファイル(XML形式)のファイル名(パス名)を指定します。「会社名」の表記統一のため、<置換> を3パターン指定しています。XMLファイルはメモ帳やテキストエディタで編集し、文字コードUTF-8で保存してください。
[CTL] フォルダの「編集_株式会社.xml」の内容
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <Root> <Convert> <Stages> <Stage> <NewTags>
<NewTag> <TagName>会社名</TagName> <Operations> <置換>株式会社,(株)</置換> <置換>(株),(株)</置換> <置換>㈱,(株)</置換> </Operations> </NewTag>
</NewTags> </Stage> </Stages> </Convert> </Root>
デザイナでの出力結果(output.xml)
「全置換」の設定例、および「置換」との合わせ技
半角スペース、全角スペースをすべて削除したいという要件も加えての複合指定例です。
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <Root> <Convert> <Stages> <Stage> <NewTags> <NewTag> <TagName>会社名</TagName> <Operations> <全置換> ,</全置換> <全置換> ,</全置換> <置換>株式会社,(株)</置換> <置換>(株),(株)</置換> <置換>㈱,(株)</置換> </Operations> </NewTag> <NewTag> <TagName>所在地</TagName> <Operations> <全置換> ,</全置換> <全置換> ,</全置換> </Operations> </NewTag> </NewTags> </Stage> </Stages> </Convert> </Root>
項目名(XMLタグ)の並び順制御
前述の出力結果のように、<NewTag> で指定した項目が行グループ先頭に行きますので、項目名(XMLタグ名)の並び順を入力時と同じにしたいときは、次の例のように <Source> <CopyFrom> を使用して制御します。
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <Root> <Convert> <Stages> <Stage> <NewTags> <NewTag> <TagName>会社コード</TagName> <Source> <CopyFrom>会社コード</CopyFrom> </Source> </NewTag> <NewTag> <TagName>会社名</TagName> <Operations> <置換>株式会社,(株)</置換> <置換>(株),(株)</置換> <置換>㈱,(株)</置換> </Operations> </NewTag> </NewTags> </Stage> </Stages> </Convert> </Root>
出力結果の項目名(XMLタグ名)が、入力時と同じ並び順になりました。
ただし、後続手順が「Excel表を生成」手順の場合は、入力する項目名(XMLタグ)の並び順が処理に影響することはありませんので、並び順の制御が必要となるケースは、XMLファイルをそのままCSVファイル(入力時と同じ項目並び順)に変換するときぐらいとなります。