編集変換:2パターン以上の文字列変換

項目中の文字列を置換するには、通常Excel表を生成」手順で、制御シートキーワード「文字列編集」置換、全置換を指定して行います。この手法では、変換パターンが1種類しか指定できないため、2種類以上の変換パターンが必要な場合は、「抽出データの編集」手順を使用します。

「抽出データの編集」手順の設定画面

f:id:xoblos:20210801145945p:plain

f:id:xoblos:20210801181617p:plain

「入力ファイル名」で指定したファイルの例

抽出データ(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

f:id:xoblos:20210801155056p:plain

「全置換」の設定例、および「置換」との合わせ技

半角スペース、全角スペースをすべて削除したいという要件も加えての複合指定例です。

<?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タグ名)が、入力時と同じ並び順になりました。

f:id:xoblos:20210801172021p:plain

ただし、後続手順がExcel表を生成」手順の場合は、入力する項目名(XMLタグ)の並び順が処理に影響することはありませんので、並び順の制御が必要となるケースは、XMLファイルをそのままCSVファイル(入力時と同じ項目並び順)に変換するときぐらいとなります。