以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  [求助]xsl如何获得单结点的多个属性值  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=47696)


--  作者:andyhoward
--  发布时间:5/29/2007 9:29:00 AM

--  [求助]xsl如何获得单结点的多个属性值
xml:
<root>
    <node attribute1="1"  attribute1="2"/>
    <node attribute3="3"/>
</root>

如上面的xml文档,同样结点名称下,可能有不一样的属性,而且属性具有不确定性,如何在xsl中获得结点上的所有属性的名称和属性值呢?
请好手指点


--  作者:Qr
--  发布时间:5/29/2007 12:12:00 PM

--  
<xsl:apply-templates select="node" />

<xsl:template match="node">
 <xsl:apply-templates select="@*" />
</xsl:template>

<xsl:template match="@*">
 <xsl:value-of select="name(.)" /><xsl:value-of select="." /><br/>
</xsl:template>


--  作者:hexun831012
--  发布时间:5/29/2007 1:11:00 PM

--  
不对不对,xml不允许一个节点有多个同名属性
--  作者:andyhoward
--  发布时间:5/29/2007 1:55:00 PM

--  
多谢版主,我明白啦,非常感谢
--  作者:andyhoward
--  发布时间:5/29/2007 2:46:00 PM

--  
以下是引用hexun831012在2007-5-29 13:11:00的发言:
不对不对,xml不允许一个节点有多个同名属性

上面是笔误,应该是
<root>
    <node attribute1="1"  attribute2="2"/>
    <node attribute3="3"/>
</root>


--  作者:andyhoward
--  发布时间:5/29/2007 2:48:00 PM

--  
以下是引用Qr在2007-5-29 12:12:00的发言:
<xsl:apply-templates select="node" />

<xsl:template match="node">
  <xsl:apply-templates select="@*" />
</xsl:template>

<xsl:template match="@*">
  <xsl:value-of select="name(.)" /><xsl:value-of select="." /><br/>
</xsl:template>



版主,再问一个问题,获得属性的个数应该加在哪里呢?


--  作者:andyhoward
--  发布时间:5/29/2007 2:59:00 PM

--  
哈哈,想到了,放在node的template里就可以啦
<xsl:apply-templates select="node" />

<xsl:template match="node">
  <xsl:apply-templates select="@*" />
  <xsl:value-of select="count(@*)" />
</xsl:template>

<xsl:template match="@*">
  <xsl:value-of select="name(.)" /><xsl:value-of select="." /><br/>
</xsl:template>


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
93.750ms