Hallo,
habe noch nicht viel Erfahrung mit xsl-xml und muss mich mit folgendem Problem beschäftigen:
Eine vorhandene xml-Datei und eine vorhandene xsl-Datei (Auszüge daraus siehe unten) müssen so angepasst werden, dass ich mit den Daten aus der xml-Datei in der xsl-Datei Berechnungen anstellen kann. Habe schon viel Zeit investiert, komme aber nicht weiter. In welche Richtung zeigt der richtige Weg?
Beispiel: Ich muss den Wert der "Kabellaenge" mit dem Wert "UGW" aus ML=1 multiplizieren und das Ergebnis anzeigen lassen...
Kann mir da jemand weiterhelfen bitte?
(mal abgesehen davon, dass ich das Komma der Zahlen in der XML-Datei noch in Punkte wandeln muss)
Danke!
Andi
Auszug aus XML-Datei:
<Daten>
<Global>
...
<Kabelquerschnitt>5</Kabelquerschnitt>
<Kabellaenge>6</Kabellaenge>
<Akzeptanzgrenze>7</Akzeptanzgrenze>
...
</Global>
<Prozessmerkmale>
...
<Prozessmerkmal>
<Nr>13</Nr>
<ML>1</ML>
<EA>S</EA>
<Merkmal>SpannungsabfallUd1</Merkmal>
<UGW>0,6</UGW>
<UAW>0,7</UAW>
<SW>0,8</SW>
<OAW>0,9</OAW>
<OGW>0,10</OGW>
<ME>V</ME>
<Kommentar>Automatischer Ablauf</Kommentar>
<ParamNetzteilInduktiv>NI_NI002251</ParamNetzteilInduktiv>
<ParamSchaltabstand>SA_nv_SA001678</ParamSchaltabstand>
<ParamAnschluss>A_test_rg</ParamAnschluss>
<ParamZusatzpruefung>ZP_ZP_C0001_HV001</ParamZusatzpruefung>
</Prozessmerkmal>
...
</Prozessmerkmale>
...
<Stellparameter>
<ParamNetzteilInduktiv>
<NI_NI002251>
<Netzteil>E229</Netzteil>
<BetriebsspannungUb>20</BetriebsspannungUb>
<Stromart>DC</Stromart>
<LaststromIL>2</LaststromIL>
<Betriebsart>S</Betriebsart>
<EPPEinAusErkennung>U</EPPEinAusErkennung>
<Lastfusspunkt>-</Lastfusspunkt>
<UdTypisch>3,3</UdTypisch>
<Ausgang>0</Ausgang>
<BereitschaftszeitTv>150</BereitschaftszeitTv>
<Schaltschwelle>10</Schaltschwelle>
<EPMEinAusErkennung> </EPMEinAusErkennung>
<EPSchwelle>10</EPSchwelle>
<EPZulaessig>1000</EPZulaessig>
</NI_NI002251>
...
</ParamNetzteilInduktiv>
...
</Stellparameter>
</Daten>
Auszug aus XSL-Datei:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:preserve-space elements="*"/>
<xsl:strip-space elements="ParamNetzteilInduktiv"/>
<xsl:template match="/">
...
<TD id="R003">
<xsl:for-each select="Daten/Global">
<xsl:value-of select="Kabellaenge"/>
</xsl:for-each>
</TD>
...
<TD width="6%" id="R007">
<xsl:for-each select="Daten/Prozessmerkmale/Prozessmerkmal">
<xsl:if test="(Merkmal)='SpannungsabfallUd1'">
<xsl:if test="ML=1">
<xsl:value-of select="UGW"/>
</xsl:if>
</xsl:if>
</xsl:for-each>
</TD>
...
<TD width="6%" id="R007">
<xsl:for-each select="Daten/Prozessmerkmale/Prozessmerkmal">
<xsl:if test="(Merkmal)='SpannungsabfallUd1'">
<xsl:if test="ML=2">
<xsl:value-of select="UGW"/>
</xsl:if>
</xsl:if>
</xsl:for-each>
</TD>
...
</xsl:template>
</xsl:stylesheet>