Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按属性值分组XML节点_Javascript_Xml_Node.js_Xslt - Fatal编程技术网

Javascript 按属性值分组XML节点

Javascript 按属性值分组XML节点,javascript,xml,node.js,xslt,Javascript,Xml,Node.js,Xslt,我是xslt转换新手,我需要重新组合包含相同用户名的所有节点,并重新组合与此用户对应的技能,下面是一个简单的示例。 输入: NG5E054 -- 技巧1 NG5E059 -- 技巧1 NG5E059 -- 技能2 NG5E059 -- 技巧3 试试这个: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Trans

我是xslt转换新手,我需要重新组合包含相同用户名的所有节点,并重新组合与此用户对应的技能,下面是一个简单的示例。 输入:

NG5E054 -- 技巧1 NG5E059 -- 技巧1 NG5E059 -- 技能2 NG5E059 -- 技巧3 试试这个:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <xsl:for-each select="//Row/login[not(.=preceding::*)]">
            <xsl:variable name="login" select="."/>
            <Row>
                <login><xsl:value-of select="$login"/></login>
                <Competency>
                    <xsl:for-each select="//Row[login=$login]/Competency">
                        <xsl:value-of select="."/>
                        <xsl:if test="position() != last()">, </xsl:if>
                    </xsl:for-each>
                </Competency>
            </Row>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>
基本上,它为每个唯一的登录创建一行。在每一行中,它连接所有相关的技能


这适用于XSLT 1.0和2.0。

搜索XSLT分组-这是这里最常问到的XSLT问题。请注意,XSLT 1.0或2.0的答案不同。@MehdiMAHHOU,如果答案符合您的要求,请勾选正确的标记。这不是一个好答案。在XSLT1.0中使用Muenchian分组,在XSLT2.0中为每个组使用xsl:。