2016-08-31 3 views
0

Как использовать переменную для указания элемента? В частности, у меня есть следующий шаблон:Как использовать переменную для доступа к узлу по имени

<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> 

Я хотел бы сделать этот шаблон более общий характер, так что я могу указать различные атрибуты, по мере необходимости, и, возможно, также разные величины, которые в основном используются в качестве уникальных ключей.

например. вместо hardcoding @MSN, @ID и @IC, я мог бы использовать @MSN и @USER или любую другую комбинацию.

Спасибо.

+0

«* Как бы вы использовать переменную, чтобы указать элемент *?» На самом деле, ваш пример о указании ** атрибут ** - и если я правильно понимаю , это будет атрибут текущего элемента. –

+0

Я изменил название, я пошел с «узлом», так как думаю, что у вас будет такая же проблема, будь то узел атрибута или узел элемента. – Bryant

ответ

1

Существует не очень элегантный способ сделать это в XSLT 1.0 (или 2.0), если только ваш процессор не поддерживает какую-либо функцию evaluate() в качестве расширения.

Одним из возможных методов может быть:

@*[name()=$variable]