昨天已经写了如何利用XSLT解析XML里的数据到select选项,今天将写如何利用条件判断语句,使自己希望的选项能在生成的select框中被选中:
rainer.xml
xml 代码
- <?xml version="1.0" encoding="utf-8"?>
- <?xml-stylesheet type="text/xsl" href="rainer.xsl"?>
- <List>
- <item>
- <id>1</id>
- <name>动感</name>
- </item>
- <item>
- <id>2</id>
- <name>地带</name>
- </item>
- <unit>2</unit>
- </List>
rainer.xsl:
xml 代码
- <?xml version="1.0" encoding="utf-8"?>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:template match="/">
- <xsl:element name="select">
- <xsl:attribute name="name">Units</xsl:attribute>
- <xsl:for-each select="List/item">
- <xsl:if test="normalize-space(id/text())=normalize-space(//List/unit/text())">
- <xsl:element name="option">
- <xsl:attribute name="value"><xsl:value-of select="id"/></xsl:attribute>
- <xsl:attribute name="selected">selected</xsl:attribute>
- <xsl:value-of select="name"/>
- </xsl:element>
- </xsl:if>
- <xsl:if test="normalize-space(id/text())!=normalize-space(//List/unit/text())">
- <xsl:element name="option">
- <xsl:attribute name="value"><xsl:value-of select="id"/></xsl:attribute>
- <xsl:value-of select="name"/>
- </xsl:element>
- </xsl:if>
- </xsl:for-each>
- </xsl:element>
- </xsl:template>
- </xsl:stylesheet>