Rational Developer for System z
COBOL for Windows バージョン 7.5 プログラミング・ガイド


例: エレメント名のハイフンを下線に変換する

ハイフンを含んでいるデータ名を持つ項目のあるデータ構造から XML 文書を生成すると、生成された XML にはハイフンを含んでいるエレメント名が含まれることになります。 この例は、エレメント値にハイフンが含まれる場合それをそのままにして、エレメント名のハイフンを変換する方法を示しています。

1 Customer-Record.
 2 Customer-Number pic 9(9).
 2 First-Name      pic x(10).
 2 Last-Name       pic x(20).

上のデータ構造にいくつかのサンプル値を取り込み、XML をそれから直接生成し、その後プログラム Pretty (例: XML の生成に示されています) を使用してフォーマット設定すると、結果は次のようになります。

<Customer-Record>
  <Customer-Number>12345</Customer-Number>
  <First-Name>John</First-Name>
  <Last-Name>Smith-Jones</Last-Name>
</Customer-Record>

エレメント名はハイフンを含み、エレメント Last-Name の内容もハイフンを含んでいます。

この XML 文書がデータ項目 xmldoc の内容であり、charcnt がこの XML 文書の長さに設定されていると想定した場合、以下のコードを使用することにより、エレメント名の中のすべての ハイフンを下線に変更し、エレメント値は未変更のままにすることができます。

1 xmldoc          pic x(16384). 
1 charcnt  comp-5 pic 9(5).
1 pos      comp-5 pic 9(5).
1 tagstate comp-5 pic 9  value zero.
. . .
dash-to-underscore.
  perform varying pos from 1 by 1
          until pos > charcnt 
    if xmldoc(pos:1) = '<'
      move 1 to tagstate
    end-if
    if tagstate = 1 and xmldoc(pos:1) = '-'
      move '_' to xmldoc(pos:1)
    else
      if xmldoc(pos:1) = '>'
        move 0 to tagstate
      end-if
    end-if 
  end-perform.

データ項目 xmldoc 内の改訂された XML 文書には、以下に示すようにエレメント名の中にハイフンの代わりに 下線があります。

<Customer_Record>
  <Customer_Number>12345</Customer_Number>
  <First_Name>John</First_Name>
  <Last_Name>Smith-Jones</Last_Name>
</Customer_Record>

ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)