Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
Xslt 需要有关xsl/xquery输出的帮助吗_Xslt_Xquery - Fatal编程技术网

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约定。它起作用了。。非常感谢您的快速帮助。。。