Рассмотрим следующий XML:использование имя локального с Concat-функции
<?xml version="1.0" encoding="UTF-8"?>
<root>
<node1></node1>
<attribute1>test</attribute1>
</root>
и это преобразование:
<xsl:template match="/root">
<result>
<xsl:for-each select="*[starts-with(local-name(), 'node')]">
---
<xsl:value-of select="concat('attribute', string(position()))"/>
---
<xsl:variable name="attribute" select="../*[local-name() = 'attribute1']"/>
<xsl:value-of select="$attribute"/>
---
<xsl:variable name="test"
select="../*[local-name() = concat('attribute', string(position()))]"/>
<xsl:value-of select="$test"/>
---
<xsl:variable name="test2"
select="../*[local-name() = concat('attribut','e1')]"/>
<xsl:value-of select="$test2"/>
---
</xsl:for-each>
</result>
</xsl:template>
Удивительно для меня, мои переменные $test
является пустой. Я предполагаю, что это связано с использованием функции concat
или string
, но я не могу понять, что вызывает это.
Любые идеи? Огромное спасибо!