【发布时间】:2021-11-08 08:49:55
【问题描述】:
我正在研究一种使 XML 选择列表更易于阅读的方法。数据看起来像这样:
<data>
<entry>
<customer>Acme</customer>
<sku>123123</sku>
<desc>Name Of First Product</desc>
</entry>
<entry>
<customer>GeneriCo</customer>
<sku>456456</sku>
<desc>Name Of Second Product</desc>
</entry>
<entry>
<customer>Acme</customer>
<sku>789789</sku>
<desc>Name Of Third Product</desc>
</entry>
</data>
我要做的是过滤数据,以便将每个客户订购的所有产品组合在一起(客户不一定需要排序)。像这样的:
Acme:
123123 Name of First Product
789789 Name of Third Product
GeneriCo:
456456 Name of Second Product
我已经看过的问题:
- XSLT filtering nodes on conditional logic 没有帮助,因为我事先不知道数据集是什么。该数据库有数千个活跃客户,硬编码数千个 if 语句是不合理的。
- Handling array like variable with XSLT 直线上升不起作用。我完全按照所写的方式复制粘贴了代码,并且在查看页面时(使用 Google Chrome,文件托管在本地 WAMPserver 实例上)没有打印出来。
由于我们工作环境的限制,不能选择升级到 XSLT 2.0 或 3.0。如果在 XSLT 1.0 中无法解决这个问题,我将不得不完全抛开这整个思路,开始为 PHP 仪表板或其他东西进行宣传。
【问题讨论】:
-
这个比较简单,只要看看这篇文章的所有相关问题来获得灵感。发布您的 XSL,我们可以帮助您进行调试,只需在查询上应用模板即可。
-
XSLT 1.0 中的分组最好使用 Muenchian 方法:jenitennison.com/xslt/grouping/muenchian.html。您可以在这些页面上找到大量的 Muenchian 分组示例 - 这里只是一个:stackoverflow.com/a/37822566/3016153