juls_pro_37: XSLT Node ersetzen

Hi,

wie kann die das Segment "GLN" unter "BuyerAddressInformation" ersetzen?

Derzeit: <GLN>123456</GLN> Neu: <GLN>123456_104446</GLN>

-> Der neue Wert soll sich wie folgt zusammensetzen. BuyerAddressInformation/GLN + '_' + RFF_Header/Text[Qualifier = API]

XML derzeit:

<?xml version="1.0" encoding="utf-8"?>
<SALESORDER>
    <Interchange>
        <InterchangeReference>10445300</InterchangeReference>
        <HeaderInformation>
            <Currency>EUR</Currency>
            <RFF_Header>
                <Qualifier>API</Qualifier>
                <Text>104446</Text>
            </RFF_Header>
            <BuyerAddressInformation>
                <GLN>123456</GLN>
            </BuyerAddressInformation>            
        </HeaderInformation>
    </Interchange>
</SALESORDER>

XML korrekt:

<?xml version="1.0" encoding="utf-8"?>
<SALESORDER>
    <Interchange>
        <InterchangeReference>10445300</InterchangeReference>
        <HeaderInformation>
            <Currency>EUR</Currency>
            <RFF_Header>
                <Qualifier>API</Qualifier>
                <Text>104446</Text>
            </RFF_Header>
            <BuyerAddressInformation>
                <GLN>123456_104446</GLN>
            </BuyerAddressInformation>            
        </HeaderInformation>
        </Sum_Amount_Details>
    </Interchange>
</SALESORDER>

Mein Versuch:

    <xsl:template match="BuyerAddressInformation/GLN">
  <xsl:copy>
    <xsl:variable name="BuyerAddressInformation" select="."/>
    <xsl:value-of select="./GLN + '_' + RFF_Header/Text[Qualifier = API]"/>
  </xsl:copy>
</xsl:template>

Danke & LG Julian

akzeptierte Antworten

  1. Hallo Julian,

    wie kann die das Segment "GLN" unter "BuyerAddressInformation" ersetzen?

    Derzeit: <GLN>123456</GLN> Neu: <GLN>123456_104446</GLN>

    -> Der neue Wert soll sich wie folgt zusammensetzen. BuyerAddressInformation/GLN + '_' + RFF_Header/Text[Qualifier = API]

    Ein + verknüpft in XPath keine Strings und Qualifier ist kein Inhalt unter Text. Probiere es so:

    <xsl:template match="BuyerAddressInformation/GLN">
      <xsl:copy>
        <xsl:value-of select="concat(., '_', ../../RFF_Header[Qualifier = 'API']/Text)"/>
      </xsl:copy>
    </xsl:template>
    
    

    Das Schließtag </Sum_Amount_Details> hat sich wohl noch in die Ausgabe reingemogelt. 😉

    Grüße,
    Thomas

    1. danke!!! was wär ich nur ohne deine hilfe... 😀

      und jap, hab wieder ein bisl ungenau gearbeitet - sorry für den extra tag 😜