xml - XPATH 表达式最后排序并返回匹配项
问题描述
我有按照创建者确定的排序顺序创建的 XML,它将某些类型的项目放在列表的开头,我需要在底部显示这些。
数据在所有其他数据之前有 TypeID 4 和 6 的项目,我在所有其他数据之后都需要它们。示例 XML 是...
<root>
<Item>
<TypeID>4</TypeID>
<Name>Item 4-1</Name>
</Item>
<Item>
<TypeID>4</TypeID>
<Name>Item 4-2</Name>
</Item>
<Item>
<TypeID>6</TypeID>
<Name>Item 6-1</Name>
</Item>
<Item>
<TypeID>2</TypeID>
<Name>Item 2-1</Name>
</Item>
<Item>
<TypeID>10</TypeID>
<Name>Item 10-1</Name>
</Item>
</root>
鉴于 XSTL...
<xsl:for-each select="root/Item">
<xsl:value-of select="Name"/>
</xsl:for-each>
我需要返回结果...
Item 2-1
Item 10-1
Item 4-1
Item 4-2
Item 6-1
我正在努力使用 XPATH 表达式在 xsl:sort 中使用。
解决方案
它不是很优雅,而且我知道结果永远不会超过 500 个,所以我发现这个工作..
<xsl:sort select="position() + (count(current()[TypeID = 4 or TypeID = 6]/TypeID) * 500)" data-type="number"/>
推荐阅读
- python-3.x - 使用 anaconda 的 jupyter notebook 安装 pandas 时出错
- laravel - conolibyte 的 Laravel 作曲家问题
- server - DigitalOcean Droplet 入站/出站(什么是什么?)
- docker - 在 Docker 映像中找不到文件
- i2c - 如何使用 STM32CUBE HAL 库进行连续 i2c 读取
- r - 根据某些条件创建箱线图
- unix - 在 Linux 中构建软件时,./configure 脚本中的 --prefix 有什么作用?
- java - 无法集成测试 gradle 多模块 Spring-Boot-Application
- c - sys_rt_sigreturn 中的信号掩码是如何设置的?
- powershell - 将 curl 命令转换为 powershell