요소 이름을 반환 할 것으로 예상되는 코드가 있지만 아무 것도 반환되지 않습니다.요소 이름 (XSL/XPath)에 대해 아무것도 반환되지 않았습니다.
다음 코드는 다른 XSL 문서를 생성하는 XSL 문서의 코드입니다. 여기서 $ expression은 XPath 식을 동적으로 만든 변수입니다.
<xsl:template match="/">
...
<xslt:template match="{$expression}">
<elem key="{name()}">
<xslt:copy-of select="@*"/>
<xslt:for-each select="@*">
<xslt:sort select="name()"/>
<attribute>|<xslt:value-of select="name()"/>|</attribute>
</xslt:for-each>
</elem>
</xslt:template>
...
</xsl:template>
그런 다음이 코드는이 코드로 두 번째 XSL 문서를 생성합니다. @key가 비어있는 것에주의하십시오.
<xsl:template match="//*[@name='Spot']">
<elem key="">
<xsl:copy-of select="@*" />
<xsl:for-each select="@*">
<xsl:sort select="name()" />
<attribute>|<xsl:value-of select="name()" />|</attribute>
</xsl:for-each>
</elem>
</xsl:template>
@key가 비어있는 것 외에 모든 것이 예상대로 작동합니다. 내 유일한 문제는 요소의 이름을 표시하는 것입니다.
편집 : 실제로 무엇을 찾고 있는지 명확히하기 위해 <xslt:template match="{$expression}">
에 의해 반환 된 결과의 요소 이름이 필요합니다.
감사합니다. :)
'name()'함수는 현재 노드를 기반으로 작동하므로 여기에 사용 된 주변 템플리트 (또는 for-each 루프)를 제공해야합니다. – Welbog
@Welbog : 유일한 "주변"템플리트 또는 for - each는 코드의 첫 번째 섹션에 대한입니다. 비록 그것이 지나치게 유용하다면 확실하지 않습니다. –
developer
@iHartGreek : 세상의 모든 변화를 가져옵니다. – Welbog