以文本方式查看主题

-  中文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=58214)


--  作者:wangyongshan
--  发布时间:1/19/2008 9:18:00 AM

--  [求助]请问大家,在xsl中如何获取一个元素的子元素的名称?
大家好,
     在xsl中如何获取一个元素的所有子元素的名称?

  例如:
   <item>
                 <http  ........./>
                 <email  ........./>
                 <ftp  ........./>
   </item>
     事先我不知道 <item></item>中有哪些子元素,但是我要根据其出现的子元素的名称来做一些处理,比如,如果出现<http ../>子元素,我就给它加一个url属性;如果出现<email ../>子元素,我就给它加一个mailAddr 属性等等。。。。
     现在就是要判断<item></item>中存在了几个子节点,每个子节点的名字是什么。。。。
    请问大家,如何获取子节点个数以及其名字啊???????
    急啊!!!


--  作者:enyaxp
--  发布时间:1/21/2008 12:20:00 AM

--  
在xsl中可以用name()返回当前元素节点的名称;计算子节点个数可以用count(../item/*)得到。
xsl大体应该如下:
...
<xsl:for-each select="../item/*">   //选中item下的所有子节点
    <xsl:choose>
        <xsl:when test=" name() = 'http' ">
            <xsl:attribute name="url">
               .......
            </xsl:attribute>
        </xsl:when>
        <xsl:when test=" name()='email' ">
            <xsl:attribute name="mailAddr">
               .......
            </xsl:attribute>
        </xsl:when>
        <xsl:when test=" name()='ftp' ">
            <xsl:attribute name="ftpAddr">
               .......
            </xsl:attribute>
        </xsl:when>
        <xsl:otherwise>
             ......
        </xsl:otherwise>
......
--  作者:wangyongshan
--  发布时间:1/21/2008 8:32:00 AM

--  
太感谢你了,好像我发的帖子每次你都给我一个好的回复,Thank you every much!
--  作者:solidluck
--  发布时间:1/29/2008 9:37:00 AM

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