Hallo Julian,
Ich würde gerne immer die letzten beiden Ziffern (eines Datums) auf 01 ändern.
-> Betrifft: "HeaderInformation.BillingPeriod".
Beispiel aktuell: 2023-10-04
Ergebnis sollte folg. sein: 2023-10-01
XML:
Das kannst du sogar entsprechend auszeichnen und formattieren lassen.
<?xml version="1.0" encoding="utf-8"?> <SALESINVOICE> <Interchange> <Recipient>1</Recipient> <Sender>2</Sender> </Interchange> <HeaderInformation> <ContractNumber>1</ContractNumber> <BillingPeriod>2023-10-04</BillingPeriod> </HeaderInformation> <LineInformation> <Item> <LineNum>1</LineNum> </Item> </LineInformation> </SALESINVOICE>
XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl"> <xsl:output method="xml" indent="yes" encoding="UTF-8"/> <xsl:strip-space elements="*" /> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> <xsl:template match="*[not(@*|*|comment()|processing-instruction()) and normalize-space()='']"/> </xsl:stylesheet>
Das Datum ist aus Sicht von XSLT ein String, d.h. du kannst mit einer Funktion wie substring hier weiterarbeiten.
Viele Grüße
Robert