按另一个XML的元素值对多个XML排序

维也纳

基本上,我要在这里尝试使用XSLT通过参考XML中的元素值合并和排序多个XML。

> <xsl:variable name="refXml"
> select="document(concat(replace($refXmlTemp,'^file:',''),'/ref.xml'))"/>
> 
> 

> <xsl:for-each select="for $x in
> collection(string-join(($inputDir,'select=*.xml;recurse=yes;on-error=fail'),'?'))
> return 
>                         (if (matches($refXml/root/descendant-or-self::issue/id[normalize-space(.)=normalize-space($x/art/item/id)]/number,'\w+')
> and matches($x/art/item/title,'\w+')) then saxon:discard-document($x) 
>                         else ())">

> <xsl:sort select="$refXml/root/descendant-or-self::issue/id[normalize-space(.)=/art/item/id]/following-sibling::number"/>

上面的代码段合并了所有输入的XML,但未对其进行排序。

似乎XSLTxsl:sort函数只有在指向当前正在处理的XML内部的值时才会生效。

请告知我如何使用ref.xml作为排序参考。

这是ref.xml的示例输入:

<root>   
 <issue>
    <id>wlu-101</id>
    <number>1</number>   
 </issue>
 <issue>
    <id>wlu-143</id>
    <number>2</number>
 </issue>
 <issue-group>
    <issue>
      <id>wlu-144</id>
      <number>3</number>
    </issue>
    <issue-group>
      <issue>
        <id>wlu-185</id>
        <number>4</number>
      </issue>
    </issue-group>
</issue-group> 
</root>
马丁·霍恩(Martin Honnen)

替换<xsl:sort select="$refXml/root/descendant-or-self::issue/id[normalize-space(.)=/art/item/id]/following-sibling::number"/>

<xsl:sort select="key('ref', /art/item/id, $refXml)/number"/>

定义后

<xsl:key name="ref" match="issue" use="normalize-space(id)"/>

作为替代用途<xsl:sort select="$refXml//issue[normalize-space(id)=current()/art/item/id]/number"/>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检查XML元素是否等于另一个XML元素,忽略空值

来自分类Dev

根据当前 XML 中的元素值,从另一个 XML 文件中获取元素

来自分类Dev

XML包含来自另一个xml的元素

来自分类Dev

从后代传递另一个元素值时,如何从后代返回XML元素值

来自分类Dev

如何获取作为另一个元素后代的多个XML元素

来自分类Dev

从多个具有相同名称的元素中获取属性值,并且在xml中获得另一个元素的属性值

来自分类Dev

如何用Mule中的另一个值替换xml元素的数据?

来自分类Dev

用另一个xml文件中的值替换元素

来自分类Dev

LINQ to XML:如果存在另一个同级元素,则为同级值

来自分类Dev

将一个xml元素添加到另一个xml中

来自分类Dev

当另一个元素具有特定值时,需要XSD中的XML元素吗?

来自分类Dev

当另一个元素具有特定值时,需要XSD中的XML元素吗?

来自分类Dev

基于具有自联接的另一个列值按值排序

来自分类Dev

XPath是否包含在一个XML元素或另一个XML元素中的字符串?

来自分类Dev

将一个XML文件中的多个值更改为另一个XML文件中引用的那些值

来自分类Dev

从另一个xml元素引用XML属性

来自分类Dev

从另一个xml元素引用XML属性

来自分类Dev

如何按一个元素升序和另一个降序对列表列表进行排序

来自分类Dev

按内部的另一个对象值对对象进行排序

来自分类Dev

按另一个数组的匹配值的顺序对numpy数组进行排序

来自分类Dev

如何使用 xslt3.0 从另一个 xml 构造 xml,其中 xml 属性值应该是新元素名称

来自分类Dev

按另一个顺序对向量重新排序

来自分类Dev

MySQL按另一个表的总和排序

来自分类Dev

将元素从一个xml文件移动到另一个xml文件

来自分类Dev

如何按另一个数组中的对应值对一个数组排序?

来自分类Dev

XSLT:将XML超链接添加到另一个XML值

来自分类Dev

动画另一个元素内的多个元素

来自分类Dev

如何通过联接另一个表从数据中更新xml中具有多个相同元素的表中的xml

来自分类Dev

XML从另一个XML文件获取值

Related 相关文章

  1. 1

    检查XML元素是否等于另一个XML元素,忽略空值

  2. 2

    根据当前 XML 中的元素值,从另一个 XML 文件中获取元素

  3. 3

    XML包含来自另一个xml的元素

  4. 4

    从后代传递另一个元素值时,如何从后代返回XML元素值

  5. 5

    如何获取作为另一个元素后代的多个XML元素

  6. 6

    从多个具有相同名称的元素中获取属性值,并且在xml中获得另一个元素的属性值

  7. 7

    如何用Mule中的另一个值替换xml元素的数据?

  8. 8

    用另一个xml文件中的值替换元素

  9. 9

    LINQ to XML:如果存在另一个同级元素,则为同级值

  10. 10

    将一个xml元素添加到另一个xml中

  11. 11

    当另一个元素具有特定值时,需要XSD中的XML元素吗?

  12. 12

    当另一个元素具有特定值时,需要XSD中的XML元素吗?

  13. 13

    基于具有自联接的另一个列值按值排序

  14. 14

    XPath是否包含在一个XML元素或另一个XML元素中的字符串?

  15. 15

    将一个XML文件中的多个值更改为另一个XML文件中引用的那些值

  16. 16

    从另一个xml元素引用XML属性

  17. 17

    从另一个xml元素引用XML属性

  18. 18

    如何按一个元素升序和另一个降序对列表列表进行排序

  19. 19

    按内部的另一个对象值对对象进行排序

  20. 20

    按另一个数组的匹配值的顺序对numpy数组进行排序

  21. 21

    如何使用 xslt3.0 从另一个 xml 构造 xml,其中 xml 属性值应该是新元素名称

  22. 22

    按另一个顺序对向量重新排序

  23. 23

    MySQL按另一个表的总和排序

  24. 24

    将元素从一个xml文件移动到另一个xml文件

  25. 25

    如何按另一个数组中的对应值对一个数组排序?

  26. 26

    XSLT:将XML超链接添加到另一个XML值

  27. 27

    动画另一个元素内的多个元素

  28. 28

    如何通过联接另一个表从数据中更新xml中具有多个相同元素的表中的xml

  29. 29

    XML从另一个XML文件获取值

热门标签

归档