xml - 使用自定义顺序的 XML 排序
问题描述
我需要对自定义订单的 XML 库进行排序。按字母顺序很容易做到,但到目前为止我还没有找到任何关于如何做到这一点的指导。
我正在使用带有文本输出的XSLT1.0
所以我需要按snake|cat|dog这个顺序排序
我的 XML 如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<properties>
<categorie>dog</categorie>
<data>...</data>
</properties>
<properties>
<categorie>cat</categorie>
<data>...</data>
</properties>
<properties>
<categorie>cat</categorie>
<data>...</data>
</properties>
<properties>
<categorie>snake</categorie>
<data>...</data>
</properties>
<properties>
<categorie>snake</categorie>
<data>...</data>
</properties>
</root>
我的 XSLT 是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/*">
<xsl:for-each select="/root/properties">
<xsl:sort select="categorie"/>
<xsl:value-of select="categorie"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
任何指导表示赞赏... ;)
解决方案
你可以这样做。我知道它不漂亮,但如果你没有太多的类别,它就可以了......
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<!-- Snake -->
<xsl:for-each select="/root/properties[categorie='snake']">
<xsl:value-of select="categorie"/>
</xsl:for-each>
<!-- Cat -->
<xsl:for-each select="/root/properties[categorie='cat']">
<xsl:value-of select="categorie"/>
</xsl:for-each>
<!-- Dog -->
<xsl:for-each select="/root/properties[categorie='dog']">
<xsl:value-of select="categorie"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
看到它在这里工作:https ://xsltfiddle.liberty-development.net/3MEdvh9
推荐阅读
- rest - 在 TRESTClient 中添加 CustomHeader
- java - commons-logging在maven的spring-core中丢失了?
- node.js - 抓取数据 instagram - 异常登录尝试警报
- java - Inifinispan jgroups 用于不同的 CacheMode
- javascript - 在 HTML 中呈现时如何对记录进行分组
- swift - 如何更改所有视图控制器的背景、标签和文本颜色?
- javascript - Javascript Falsy 检查 IF 条件下的执行顺序
- vuejs2 - VueJS/Nuxt 样式绑定仅适用于硬重载
- java - PodamFactory 没有设置带有注释的字段
- windows - PnP 管理器如何确定合适的功能驱动程序?