in zweiter for-each auf den Wert der ersten for-each zugreiffen?
Chris
- xsl
0 Chris
Ich habe folgende XML Datei:
<CATEGORY>
<CATEGORYNAME>1_POPULATE</CATEGORYNAME>
<TESTCASE>
<SYSTEM>Demov5</SYSTEM>
<BINVERSION>(72) V5.0-SP3</BINVERSION>
<TESTNUMBER>TRN-V0050-SP03-HFD-SRV-00001</TESTNUMBER>
<DESCRIPTION>Purge DB: clean table Applicants</DESCRIPTION>
<STATUS>OK</STATUS>
<BADLINES></BADLINES>
<TESTSTEP>all</TESTSTEP>
<STARTDATE>7/9/2008 12:14:00 PM</STARTDATE>
<ENDDATE>7/9/2008 12:14:28 PM</ENDDATE>
<ERRDESCRIPTION>no errors</ERRDESCRIPTION>
</TESTCASE>
<MOJOREPORTNAME>Test Session : (72) V5.0-SP3 </MOJOREPORTNAME>
<TESTCASE>
<SYSTEM>Demov5</SYSTEM>
<BINVERSION>(72) V5.0-SP3</BINVERSION>
<TESTNUMBER>TRN-V0050-SP03-HFD-SRV-00002</TESTNUMBER>
<DESCRIPTION>DB POPULATION: data for DemoV5 system</DESCRIPTION>
<STATUS>OK</STATUS>
<BADLINES></BADLINES>
<TESTSTEP>all</TESTSTEP>
<STARTDATE>7/9/2008 12:14:42 PM</STARTDATE>
<ENDDATE>7/9/2008 12:15:13 PM</ENDDATE>
<ERRDESCRIPTION>no errors</ERRDESCRIPTION>
</TESTCASE>
<MOJOREPORTNAME>Test Session : (72) V5.0-SP3 </MOJOREPORTNAME>
</CATEGORY>
<CATEGORY>
<CATEGORYNAME>2_LOOKUP</CATEGORYNAME>
<TESTCASE>
<SYSTEM>Demov5</SYSTEM>
<BINVERSION>(72) V5.0-SP3</BINVERSION>
<TESTNUMBER>TRN-V0050-SP03-HFD-SRV-00001</TESTNUMBER>
<DESCRIPTION>Purge DB: clean table Applicants</DESCRIPTION>
<STATUS>OK</STATUS>
<BADLINES></BADLINES>
<TESTSTEP>all</TESTSTEP>
<STARTDATE>7/9/2008 12:14:00 PM</STARTDATE>
<ENDDATE>7/9/2008 12:14:28 PM</ENDDATE>
<ERRDESCRIPTION>no errors</ERRDESCRIPTION>
</TESTCASE>
<MOJOREPORTNAME>Test Session : (72) V5.0-SP3 </MOJOREPORTNAME>
</CATEGORY>
Hier ein Ausschnitt meiner XSL Datei:
<xsl:for-each select="MOJOREPORT/SUCCESSFULLTESTCASE/CATEGORY">
<h3 class="index_feature">
<a href="#">
<xsl:value-of select="CATEGORYNAME"/>
</a>
</h3>
<ul>
<xsl:for-each select="TESTCASE">
<li>
<a href="#" class="index_testcases">
<span class="sub_success">
<xsl:value-of select="STATUS"/>
</span> : <xsl:value-of select="TESTNUMBER"/>
</a> : <img src="img/panel.png" style="padding-top:6px;padding-left:3px;cursor:pointer;" title="show data.tr log" onclick="loadTraceFiles('{name(parent::node())}/{TESTNUMBER}', 'data.tr', true);" />
<img src="img/updatepackage.png" style="padding-top:6px;padding-left:3px;cursor:pointer;" title="show data.tdmp log" onclick="loadTraceFiles('{name(parent::node())}/{TESTNUMBER}', 'data.tdmp', true);" />
<img src="img/outbox.png" style="padding-top:6px;padding-left:3px;padding-right:3px;cursor:pointer;" title="show data.out log" onclick="loadTraceFiles('{name(parent::node())}/{TESTNUMBER}', 'data.out', true);" />
<xsl:value-of select="DESCRIPTION"/> ....... <xsl:value-of select="ERRDESCRIPTION"/>.......
</li>
</xsl:for-each>
</ul>
</xsl:for-each>
ich möchte in die Javascript Funktion den Wert des Feldes CATEGORYNAME/TESTNUMBER haben. die TESTNUMBER bekomme ich ohne weiteres, jedoch auf das Fld CATEGORYNAME kann ich nicht zugreiffen.
1. Versuch: loadTraceFiles('{CATEGORYNAME}/{TESTNUMBER}');
1. Resulat: CATEGORYNAME ist leer. TestNumber ist ok
2. Versuch: loadTraceFiles('{name(parent::node())}/{TESTNUMBER}');
2. Resultat: Ich bekomme logischerweise CATEGORY zurück, und die Testnummer
Ich brauche aber den CAGTEGORY Name und ich weiss nicht wie ich diesen ansprechen kann. Ich finde es merkwürdig, dass ich innerhalb der zweiten for-each schleife nicht auf das aktuele objekt der ersten for-each schleife zugreiffen kann. Vielleich gibt es da einen Kniff, mit dem es einfach geht.?
Ich hoffe mein Problem ist einigermassen verständlich.
EGOPOST
Das habe ich gesucht:
{parent::node()/*}/{TESTNUMBER}