Javascript 按属性值分组XML节点
我是xslt转换新手,我需要重新组合包含相同用户名的所有节点,并重新组合与此用户对应的技能,下面是一个简单的示例。 输入: NG5E054 -- 技巧1 NG5E059 -- 技巧1 NG5E059 -- 技能2 NG5E059 -- 技巧3 试试这个: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
<?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:。