【问题标题】:Cobol XML- Suppress OptionCobol XML- 抑制选项
【发布时间】:2022-03-16 09:01:58
【问题描述】:

我正在使用下面的代码来生成 XML 语句。

01 GrpHdr.
      02 A1.
      03 MsgId                         PIC X(50) VALUE SPACES.
      03 Test3.
        05 Test31.
          07 Test32                    PIC X(10) VALUE SPACES.
        05 Test4.
          07 Test5.
            09 Test6.
              11 Test7                 PIC X(10) VALUE SPACES.
    MAIN-PARA.
    
            MOVE 'MESSAGE ID'          TO MsgId.
            MOVE 'TEST32'                TO Test32.
            MOVE SPACES               TO Test7.
    
            INITIALIZE OUTPUT-XML.
    
                XML GENERATE OUTPUT-XML from Grphdr
SUPPRESS Test31 EVERY NONUMERIC ELEMENT WHEN SPACES
                  ON EXCEPTION
                     DISPLAY 'GENERATE XML Error-Header'
                  NOT ON EXCEPTION
                     CONTINUE
            END-XML
            
DISPLAY 'OUTPUT:' OUTPUT-XML .

    MAIN-EXIT.
        EXIT.

我已将正确的值(非空)填充到 MsgId 和 Test32 标记,并将 SPACES 填充到 Test7 标记。我期待如下输出,

<GrpHdr>
<A1>
    <MsgId>MESSAGE ID</MsgId>
    <Test3>
        <TEST31>
            <TEST32>TEST32</TEST32>
        </TEST31>
    </Test3>
</A1>
</GrpHdr>

但是我得到了如下所示的输出,它跳过了 MsgID 之后的所有标签,并且不显示 TEST32 标签。

<GrpHdr>
<A1>
    <MsgId>MESSAGE ID</MsgId>
</A1>
</GrpHdr>

【问题讨论】:

    标签: xml cobol


    【解决方案1】:
            XML GENERATE OUTPUT-XML from Grphdr
             SUPPRESS EVERY NONUMERIC ELEMENT WHEN SPACES
              ON EXCEPTION
                 DISPLAY 'GENERATE XML Error-Header'
              NOT ON EXCEPTION
                 CONTINUE
        END-XML
    

    上面的语法对我有用。无需在 SUPPRESS 中提及变量名。

    【讨论】:

    • 看起来像 Q+A - 欢迎!我建议接受您自己的答案为“对我有用” - 做得好。
    猜你喜欢
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 2020-08-20
    • 2015-07-06
    • 1970-01-01
    相关资源
    最近更新 更多