我在遍历节点时遇到麻烦。我有一些工作示例,但XML布局略有不同。
XML格式
<FAMILY>
<FAMILY_NAMES id="1" name="Smith">
<KID name="Jim">First Born</KID>
<KID name="Joe">Enjoys playing outside</KID>
<KID name="Jon">Straight A student</KID>
</FAMILY_NAMES>
<FAMILY_NAMES id="2" name="Barnes">
<KID name="Mike">Just got his license</KID>
<KID name="Dan">On vacation</KID>
<KID name="Ken">Going to graduate school</KID>
</FAMILY_NAMES>
<FAMILY_NAMES id="3" name="Thompsons">
<KID name="James">Loves sports</KID>
<KID name="Ben">Middle Child</KID>
<KID name="Frank">Youngest child</KID>
</FAMILY_NAMES>
</FAMILY
我可以得到一个家庭列表,但是我需要获取KID
每个家庭下标签之间的随机信息列表(例如“在外面玩游戏”)。到目前为止,我仅能获得一个姓氏列表。
XSLT
<xsl:for-each select="//FAMILY/FAMILY_NAMES">
<xsl:value-of select="@name"></xsl:value-of><xsl:text>
</xsl:text>
<xsl:for-each select="KID">
<xsl:value-of select="KID"></xsl:value-of><xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:for-each>
只是不确定为什么这行不通。
当通过每次循环KID
,当前节点已经是每一个KID
,所以得到的字符串值KID
使用<xsl:value-of select="."/>
,不="KID"
。
这个XSLT
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" version="1.0"/>
<xsl:template match="/">
<xsl:for-each select="/FAMILY/FAMILY_NAMES">
<xsl:value-of select="@name"/>
<xsl:text>
</xsl:text>
<xsl:for-each select="KID">
<xsl:text> </xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="."/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
应用于您的输入XML,
<FAMILY>
<FAMILY_NAMES id="1" name="Smith">
<KID name="Jim">First Born</KID>
<KID name="Joe">Enjoys playing outside</KID>
<KID name="Jon">Straight A student</KID>
</FAMILY_NAMES>
<FAMILY_NAMES id="2" name="Barnes">
<KID name="Mike">Just got his license</KID>
<KID name="Dan">On vacation</KID>
<KID name="Ken">Going to graduate school</KID>
</FAMILY_NAMES>
<FAMILY_NAMES id="3" name="Thompsons">
<KID name="James">Loves sports</KID>
<KID name="Ben">Middle Child</KID>
<KID name="Frank">Youngest child</KID>
</FAMILY_NAMES>
</FAMILY>
产生以下输出:
Smith
Jim: First Born
Joe: Enjoys playing outside
Jon: Straight A student
Barnes
Mike: Just got his license
Dan: On vacation
Ken: Going to graduate school
Thompsons
James: Loves sports
Ben: Middle Child
Frank: Youngest child
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句