XSLT Node ersetzen
juls_pro_37
- xml
- xsl
0 ThomasM
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
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
danke!!! was wär ich nur ohne deine hilfe... 😀
und jap, hab wieder ein bisl ungenau gearbeitet - sorry für den extra tag 😜