2016-08-31 4 views
0

Wie würden Sie eine Variable verwenden, um ein Element anzugeben? Insbesondere habe ich die folgende Vorlage:So verwenden Sie eine Variable für den Zugriff auf einen Knoten nach Name

<xsl:template match="status" mode="status_summary"> 
    <div id="{@MSN}_{@IC}_{@ID}" class="hidden status_summary"> 
    <xsl:apply-templates select="group" mode="status_summary"/> 
    <p> 
    <button style="width:100%" onclick="showhide('{@MSN}_{@IC}_{@ID}')" >Hide</button> 
    </p> 
    </div> 
</xsl:template> 

Ich mag diese Vorlage allgemeinere machen, so dass ich verschiedene Attribute wie nötig und vielleicht auch unterschiedliche Mengen angeben, die grundsätzlich als eindeutiger Schlüssel verwendet werden.

z.B. anstelle von Hardcoding @MSN, und @IC, könnte ich @MSN und @USER oder eine andere Kombination verwenden möchten.

Danke.

+0

„* Wie würden Sie eine Variable verwenden, um ein Element zu spezifizieren *?“ Eigentlich Ihr Beispiel ist ein ** Attribut ** zum Angeben - und wenn ich mich richtig verstehen Es wird ein Attribut des aktuellen Elements sein. –

+0

Ich änderte den Titel, ich ging mit "Node", da ich denke, dass Sie die gleiche Art von Problem haben, ob es ein Attributknoten oder Elementknoten ist. – Bryant

Antwort

1

Es gibt nicht wirklich eine elegante Möglichkeit, dies in XSLT 1.0 (oder 2.0) zu tun, es sei denn, Ihr Prozessor unterstützt eine Art von evaluate() Funktion als Erweiterung.

Eine mögliche Methode könnte sein:

@*[name()=$variable] 
Verwandte Themen