+ -
当前位置:首页 → 问答吧 → 高分悬赏一个简单xsl小问<xsl:value-of> 跟帖有分

高分悬赏一个简单xsl小问<xsl:value-of> 跟帖有分

时间:2010-09-04

来源:互联网

xml文档如下:XML code
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="E:\workspace\xml_test2\name.xsl"?>
<root>
    <people name="李氏">李老四</people>
    <people name="王氏">王麻子</people>
    <people name="王氏">王老丫</people>
    <people name="李氏">李天王</people>
    <people name="上官氏">上官云顿</people>
    <people name="李氏">李命薄</people>
</root>



现在想输出的格式是 李氏:李老四 李天王 李命薄
于是编写代码XML code
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="E:\workspace\xml_test2\name.xsl"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:key name="xing" match="@name" use="."/>
    <xsl:template match="root">
        <xsl:for-each select="people/@name[generate-id()=generate-id(key('xing',.))]">
            <xsl:value-of select="."/>
            <xsl:text>:</xsl:text>
            <xsl:value-of select="//people[@name=current()]"/>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>



但是每个姓氏都只输出了第一个人名,
将<xsl:value-of select="//people[@name=current()]"/>
改为<xsl:value-of select="count(//people[@name=current()])"/>
可以输出 3 2 1 ,即找到了各个姓氏的各个人,我很疑惑,难道<xsl:value-of>找到一个后就不找了吗

谢谢大家指教,如果有更好的方法输出我上面所说的内容,希望告诉我,我会加分的,谢谢大家。。。。

作者: superdcj   发布时间: 2010-09-04

顶个先。。。。。

作者: Dota_noney   发布时间: 2010-09-04

谢谢帮顶,不过希望大家给出更有助于解决问题的答案。

作者: superdcj   发布时间: 2010-09-04