XSLT verwenden von Variablen mit for-each select
Ich bin sehr neu in XML & XSLT und habe eben einen job, wo eines meiner Projekte muss mich um diese zu verwenden. Ich versuche, eine dynamische variable (später auf diese variable nicht hardcoded werden), um Attribute für ein bestimmtes Modul.
Hier ist eine verkürzte version meiner XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<style type="text/css">
.details
{
margin:25px 25px;
}
</style>
<xsl:variable name="name" select="1234"/>
<xsl:for-each select="Root/Row[Module_Name='$name']">
<html>
<div class="details">
<pre>
<b>Module:</b> <xsl:value-of select="Module_Name"/><br></br>
<b>Description:</b> <xsl:value-of select="Description"/>
</pre>
</div>
</html>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Beispiel-XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Row>
<SI_NO>1</SI_NO>
<Module_Name>1234</Module_Name>
<Description>This is the description</Description>
</Row>
</Root>
Gerade jetzt ist die Ausgabe leer. Ich denke, ich kann nicht die Verwendung von Variablen dieser Art, und ich hoffe, jemand kann mich auf den rechten Weg.
Danke.
- Vergessen Sie nicht zu akzeptieren, Antworten wenn Sie Ihre Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eingang:
XSL:
Ausgabe:
Du willst
<xsl:for-each select="Root/Row[Module_Name=$name]">
statt<xsl:for-each select="Root/Row[Module_Name='$name']">
. Ihre version vergleicht dieModule_Name
element wird mit dem string-literal mit dem dollar-symbol, gefolgt vonname
.