Hallo,
ich bin neu im Umgang mit XML und XSLT. Ich würde gerne eine XML Datei transformieren und habe dabei folgendes Ausgangsmaterial:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<!-- Response -->
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<SAP:PerformanceHeader xmlns:SAP="http://sap.com/xi/XI/Message/30">
<SAP:RunTimeItem>
<SAP:Name type="ADAPTER_IN">IDOC_ADAPTER</SAP:Name>
<SAP:Timestamp type="begin" host="SAPPID01">20130814115947.463</SAP:Timestamp>
</SAP:RunTimeItem>
<SAP:RunTimeItem>
<SAP:Name type="ADAPTER_IN">IDOC_ADAPTER</SAP:Name>
<SAP:Timestamp type="end" host="SAPPID01">20130814150947.496</SAP:Timestamp>
</SAP:RunTimeItem>
....
....
....
</SAP:PerformanceHeader>
und zwar müsste ich das Attribut SAP:Timestamp in 2 Strings aufteilen. Es stellt das Datum (JJJJ MM TT) & die Zeit (HH MM SS MSS) dar. Dies würde ich gerne in zwei unterschiedlichen Attributen in XML ausgeben. Dabei habe ich folgendes Stylesheet erstellt.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl: output method="xml" indent="yes"/>
<xsl:template match ="PerformanceHeader">
<xsl:for-each select="PerformanceHeader">
<xsl:value-of select="Name"/>
</xsl:for-each>
<xsl:for-each select="PerformanceHeader/Timestamp">
<xsl:value-of select="substring(.,1,8)"/>
<xsl:value-of select="substring(.,9)"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Ergebnis sollte in etwa so Aussehen
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<!-- Response -->
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<SAP:PerformanceHeader xmlns:SAP="http://sap.com/xi/XI/Message/30">
<SAP:RunTimeItem>
<SAP:Name type="ADAPTER_IN">IDOC_ADAPTER</SAP:Name>
<SAP: Datum type="begin" host="SAPPID01">20130814</SAP:Timestamp>
<SAP:Uhrzeit type="begin" host="SAPPID01">115947.463</SAP:Timestamp>
</SAP:RunTimeItem>
<SAP:RunTimeItem>
<SAP:Name type="ADAPTER_IN">IDOC_ADAPTER</SAP:Name>
<SAP: Datum type="end" host="SAPPID01">20130814150947.496</SAPatum>
<SAP:Uhrzeit type="end" host="SAPPID01">20130814150947.496</SAP:Uhrzeit>
</SAP:RunTimeItem>
....
....
....
</SAP:PerformanceHeader>
Kann man das ganze in Variablen speichern und es wieder in eine XML schreiben ?
---------- Post added at 15:19 ---------- Previous post was at 14:29 ----------
kann schon zu. Habe einen Weg gefunden
ich bin neu im Umgang mit XML und XSLT. Ich würde gerne eine XML Datei transformieren und habe dabei folgendes Ausgangsmaterial:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<!-- Response -->
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<SAP:PerformanceHeader xmlns:SAP="http://sap.com/xi/XI/Message/30">
<SAP:RunTimeItem>
<SAP:Name type="ADAPTER_IN">IDOC_ADAPTER</SAP:Name>
<SAP:Timestamp type="begin" host="SAPPID01">20130814115947.463</SAP:Timestamp>
</SAP:RunTimeItem>
<SAP:RunTimeItem>
<SAP:Name type="ADAPTER_IN">IDOC_ADAPTER</SAP:Name>
<SAP:Timestamp type="end" host="SAPPID01">20130814150947.496</SAP:Timestamp>
</SAP:RunTimeItem>
....
....
....
</SAP:PerformanceHeader>
und zwar müsste ich das Attribut SAP:Timestamp in 2 Strings aufteilen. Es stellt das Datum (JJJJ MM TT) & die Zeit (HH MM SS MSS) dar. Dies würde ich gerne in zwei unterschiedlichen Attributen in XML ausgeben. Dabei habe ich folgendes Stylesheet erstellt.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl: output method="xml" indent="yes"/>
<xsl:template match ="PerformanceHeader">
<xsl:for-each select="PerformanceHeader">
<xsl:value-of select="Name"/>
</xsl:for-each>
<xsl:for-each select="PerformanceHeader/Timestamp">
<xsl:value-of select="substring(.,1,8)"/>
<xsl:value-of select="substring(.,9)"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Ergebnis sollte in etwa so Aussehen
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<!-- Response -->
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<SAP:PerformanceHeader xmlns:SAP="http://sap.com/xi/XI/Message/30">
<SAP:RunTimeItem>
<SAP:Name type="ADAPTER_IN">IDOC_ADAPTER</SAP:Name>
<SAP: Datum type="begin" host="SAPPID01">20130814</SAP:Timestamp>
<SAP:Uhrzeit type="begin" host="SAPPID01">115947.463</SAP:Timestamp>
</SAP:RunTimeItem>
<SAP:RunTimeItem>
<SAP:Name type="ADAPTER_IN">IDOC_ADAPTER</SAP:Name>
<SAP: Datum type="end" host="SAPPID01">20130814150947.496</SAPatum>
<SAP:Uhrzeit type="end" host="SAPPID01">20130814150947.496</SAP:Uhrzeit>
</SAP:RunTimeItem>
....
....
....
</SAP:PerformanceHeader>
Kann man das ganze in Variablen speichern und es wieder in eine XML schreiben ?
---------- Post added at 15:19 ---------- Previous post was at 14:29 ----------
kann schon zu. Habe einen Weg gefunden