Xslt 需要有关xsl/xquery输出的帮助吗
我的要求如下: 输入:-Xslt 需要有关xsl/xquery输出的帮助吗,xslt,xquery,Xslt,Xquery,我的要求如下: 输入:- <Root> <Name>abc</Name> <Name>def</Name> <Name>abc</Name> <Name>abc</Name> <Name>def</Name> <Name>def</Name> </Root> abc def abc abc def def 输出:-我需要使N
<Root>
<Name>abc</Name>
<Name>def</Name>
<Name>abc</Name>
<Name>abc</Name>
<Name>def</Name>
<Name>def</Name>
</Root>
abc
def
abc
abc
def
def
输出:-我需要使Name元素的xml值不具有代表性
<Root>
<Name>abc</Name>
<Name>def</Name>
</Root>
abc
def
我们可以使用xsl或xquery任何东西。。。
请帮助我在XSLT2.0中使用相同的…
<xsl:for-each-group select="/*/Name" group-by=".">
<xsl:copy-of select="current-group()[1]"/>
</xsl:for-each>
在XQuery 1.0中使用
for $n in distinct-values(/*/Name)
return <Name>{$n}</Name>
不同值(/*/Name)中的$n的
返回{$n}
除了@michael kay的优秀答案之外,如果您有XQuery 3.0,那么您可以使用:
distinct-values(/*/Name) ! <Name>{.}</Name>
不同的值(/*/Name)!{.}
是简单的映射运算符,对于这种简单的单行转换情况,它比对于的更好…嗨,它在没有用xml定义名称空间的情况下工作。但在实际情况中,xml将包含如下名称空间:-abc def abc def您尝试将名称空间添加到xsl:for each?嘿,我试过使用localname约定。它起作用了。。非常感谢您的快速帮助。。。