XSLT 1.0 "_*" entfernen
juls_pro_37
- xml
- xsl
Hi,
wie entferne ich unter "Recipient" alle Werte nach und inkl. "_"?
XML
<Interchange>
<Recipient>123456_1245</Recipient>
<Sender>234324324</Sender>
<CreationDate>2020-07-21:07:31:20</CreationDate>
<Test>No</Test>
</Interchange>
Korrekt:
<Interchange>
<Recipient>123456</Recipient>
<Sender>234324324</Sender>
<CreationDate>2020-07-21:07:31:20</CreationDate>
<Test>No</Test>
</Interchange>
LG Julian
Hi,
wie entferne ich unter "Recipient" alle Werte nach und inkl. "_"?
substring-before?
cu,
Andreas a/k/a MudGuard
Hi,
hätte es hiermit versucht, funktioniert aber nur wenn das Feld "Recipient" wirklich ein _ enthält. Es besteht aber auch die Möglichkeit, dass der "Recipient" den Wert "_" gar nicht enthält.-> Dann soll der "Recipient" beibehalten werden.
Ist das korrekt????
<xsl:template match="Interchange/Recipient[substring-before(//Recipient,'_')]">
<Recipient><xsl:value-of select="substring-before(//Recipient,'_')" /></Recipient>
</xsl:template>
Hallo Julian,
hätte es hiermit versucht, funktioniert aber nur wenn das Feld "Recipient" wirklich ein _ enthält. Es besteht aber auch die Möglichkeit, dass der "Recipient" den Wert "_" gar nicht enthält.-> Dann soll der "Recipient" beibehalten werden.
Probiere es mit contains-Abfrage im Prädikat:
<xsl:template match="Interchange/Recipient[contains(., '_')]">
<Recipient><xsl:value-of select="substring-before(., '_')"/></Recipient>
</xsl:template>
Grüße,
Thomas
danke Thomas, für deine Hilfe.
Hatte es Anfangs mit Contains erfolglos versucht. Habe aber meinen Denkfehler gefunden. Vielen Dank nochmals.
LG Julian
Hallo juls_pro_37,
Habe aber meinen Denkfehler gefunden.
Welches war denn dein Denkfehler? Vielleicht hilft er anderen, nicht denselben Fehler zu begehen.
Bis demnächst
Matthias
Hi Matthias,
hatte das contains falsch angedacht:
<xsl:template match="Interchange/Recipient[., contains '_']">
LG Julian