使用XSLT从XML检索所有属性值
发布时间:2020-12-16 22:56:40 所属栏目:百科 来源:网络整理
导读:我无法弄清楚如何从 XML文档访问标记中的所有属性. 假设我有以下XML: names name firstname="Rocky" lastname="Balboa" divider=","/ name firstname="Ivan" lastname="Drago" divider=","//names 我想要以下输出: Rocky Balboa,Ivan Drago, 我现在拥有的
我无法弄清楚如何从
XML文档访问标记中的所有属性.
假设我有以下XML: <names> <name firstname="Rocky" lastname="Balboa" divider=","/> <name firstname="Ivan" lastname="Drago" divider=","/> </names> 我想要以下输出: 我现在拥有的是: <xsl:for-each select="names/name"> <xsl:value-of select="@firstname"/> <xsl:value-of select="@lastname"/> <xsl:value-of select="@divider"/> </xsl:for-each> 我想知道的是,是否可以在一个选择值中执行此操作而不必执行其中三个操作.因此,为了澄清,我希望能够使用一个select值输出标记中的所有属性.这可能吗? 谢谢. 解决方法
因为我不确定使用xsl:value-of是否是一个硬性要求,或许类似下面的内容可能是你要锁定的内容.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="yes"/> <xsl:template match="name" mode ="print" > <xsl:value-of select="@firstname"/> <xsl:text> </xsl:text> <xsl:value-of select="@lastname"/> <xsl:value-of select="@divider"/> </xsl:template> <xsl:template match="/"> <xsl:apply-templates select="names/name" mode="print"/> </xsl:template> </xsl:stylesheet> 您可以使用< xsl:apply-templates select =“names / name”mode =“print”/> Rocky Balboa, 在不使用属性名称的情况下更新crate输出: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="yes"/> <xsl:template match="name" mode ="print" > <xsl:for-each select="@*" > <xsl:if test="not(position() = last() or position() = 1)"> <xsl:text> </xsl:text> </xsl:if> <xsl:value-of select="."/> </xsl:for-each> </xsl:template> <xsl:template match="/"> <xsl:apply-templates select="names/name" mode="print"/> </xsl:template> </xsl:stylesheet> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |