需要帮助将包含名称空间的 XML 解析到 Abap 内表中

问题描述 投票:0回答:1

我正在尝试将此 XML 文件转换为 Abap 内部表,其中根标签 包含名称空间,并且我的 STRANS xml 转换正在转储异常,而没有太多明确的信息。

这是异常 CX_ST_MATCH_ELEMENT 的屏幕截图。

exception cx_st match_element

我的目标是从下面的 Rsn 和 AddtlInf 标签中获取值:

    <TxInfAndSts> <----NOTE: this is repetitive
         <StsRsnInf>
         <Rsn>
            <CD>ABC</CD>
         </Rsn>
         <AddtlInf>XYZ</AddtlInf>

这是客户提供的 XML 片段:

 <?xml version="1.0" encoding="utf-8" standalone="no"?>
<CBISDDStsRptLogMsg xmlns="urn:CBI:xsd:CBISDDStsRptLogMsg.00.01.00" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
    <GrpHdr>
        <MsgId>.....</MsgID>
    </GrpHdr>
    <OrgnlGrpInfAndSts>
        ...

                 ...
    </OrgnlGrpInfAndSts>
    <OrgnlPmtInfAndSts>
        <OrgnlPmtInfId>...</OrgnlPmtInfId>
        <TxInfAndSts>
            <OrgnlInstrId>.....</OrgnlInstrId>
            <OrgnlEndToEndId>.....</OrgnlEndToEndId>
            <TxSts>.....</TxSts>
            <StsRsnInf>
                <Orgtr>
                    <Nm>.....</Nm>
                </Orgtr>
                <Rsn>
                    <Cd>ABC</Cd>
                </Rsn>
                <AddtlInf>XYZ</AddtlInf>
            </StsRsnInf>
                </TxInfAndSts>
         </OrgnlPmtInfAndSts>
</CBISDDStsRptLogMsg>

这是我的 STRAN 反序列化转换代码的片段:

如果我调试此转换,当它到达

<OrgnlPmtInfAndSts>
标签时,它就会转储。

<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates" xmlns:ddic="http://www.sap.com/abapxml/types/dictionary">

  <tt:root name="CBISDDStsRptLogMsg" type="ddic:ZEUDDR_XML_IT"/>

  <tt:template>
    <CBISDDStsRptLogMsg xmlns="urn:CBI:xsd:CBISDDStsRptLogMsg.00.01.00" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" tt:ref=".CBISDDStsRptLogMsg">
      <tt:skip name="GrpHdr"/>
      <tt:skip name="OrgnlGrpInfAndSts"/>
      <OrgnlPmtInfAndSts>
        <tt:skip name="OrgnlPmtInfId"/>
        <tt:loop ref="ITEMS">
          <TxInfAndSts>
            <tt:skip name="OrgnlInstrId"/>
            <tt:skip name="OrgnlEndToEndId"/>
            <tt:skip name="TxSts"/>
            <StsRsnInf>
              <tt:skip name="Orgtr"/>
              <Rsn>
                <Cd tt:value-ref="REASON_CODE"/>
              </Rsn>
              <AddtlInf tt:value-ref="REASON_TEXT"/>
            </StsRsnInf>
            <OrgnlTxRef>

            </OrgnlTxRef>
          </TxInfAndSts>
        </tt:loop>
      </OrgnlPmtInfAndSts>

    </CBISDDStsRptLogMsg>
  </tt:template>

</tt:transform>

即使我提供了确切的标签名称,我也不知道为什么会发生错误。如果您能建议错误是什么以及如何解决它,我将不胜感激。

xml xslt xml-parsing transformation abap
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.