rudik
Developer
Аттрибуты в XSLT
Нижеприведенный шаблон должен вывести:
-------
Высота : 100
Ширина : 200
Глубина : 300
-------
Проблема заключается в конструкции <xsl:for-each select="key('uid', '/style/stl/@name')">, так если вместо /style/stl/@name поставить height, то выведет напротив Высота, Ширина, Глубина - 100. А необходимо для каждого элемента делать вывод соответствующего значения.[РАЗМЕРОМ=1]
Нижеприведенный шаблон должен вывести:
-------
Высота : 100
Ширина : 200
Глубина : 300
-------
PHP:
<?xml version="1.0" encoding="Windows-1251"?>
<root>
<style>
<stl name="height">Высота</stl>
<stl name="width">Ширина</stl>
<stl name="depth">Глубина</stl>
</style>
<data>
<function name="height">100</function>
<function name="width">200</function>
<function name="depth">300</function>
</data>
</root>
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" encoding="Windows-1251"/>
<xsl:key name="uid" match="function" use="@name"/>
<xsl:template match="stl">
<br />
<xsl:value-of select="current()"/> :
<xsl:for-each select="key('uid', '/style/stl/@name')">
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>