xml - XSLT 应用模板,其中子元素以“A”开头
问题描述
我有一个xml结构,基本上如下:
<Export>
<TaskWords>
<TaskWord>
<ID>1</ID>
<WordType>A01</WordType>
<Body>blah</body>
</TaskWord>
<TaskWord>
<ID>2</ID>
<WordType>A02</WordType>
<Body>blah</body>
</TaskWord>
<TaskWord>
<ID>3</ID>
<WordType>B01</WordType>
<Body>blah</body>
</TaskWord>
<TaskWord>
<ID>4</ID>
<WordType>B02</WordType>
<Body>blah</body>
</TaskWord>
</TaskWords>
</Export>
我还有一些 XSLT 代码,它应用了一个模板,该模板构建了 TaskWords 的 XHTML 表,按 WordType 分组。
我想将模板应用于 TaskWords 的子集,例如 WordType 以“A”开头;这样我就可以将所有“A”字型放入报告的一个表格中,然后从其他地方添加更多内容,然后跟进一个包含所有“B”字型的表格。
我一直在尝试按照以下方式拨打电话,但无济于事:
<xsl:apply-templates select="TaskWords[TaskWord/WordType[starts-with(.,'A')]]"/>
<xsl:apply-templates select="OtherContent"/>
<xsl:apply-templates select="TaskWords[TaskWord/WordType[starts-with(.,'B')]]"/>
在尝试使用 apply-templates 命令的 select 语句过滤 TaskWords 集时,我是否走在正确的道路上?任何建议、指示或解决方案将不胜感激。
解决方案
查看 xsl:for-each-group。通过设置适当的属性,您可以获得不同的组,其中组的所有成员都具有您正在查看的条件。然后,您可以在整个组级别进行处理,或者根据您的输出要求对组中的每个成员进行处理。
推荐阅读
- python - 如何使用 sklearn KNN 预测值
- r - R中的结构性中断:绘制趋势
- blazor - 在 blazor 中以增量方式向数组中添加内容而不重新渲染整个数组的正确方法是什么?
- python - 从关键字参数生成参数字典
- c - 使用 C netfilter lib 列出自定义链
- collections - ASP.NET Core 5 MVC:将模型绑定复杂集合发布回控制器实例化 vm 但没有数据
- jmeter - JMeter - 添加客户端证书和密钥
- javascript - 如何在继续执行之前在单独的函数中等待 API 响应?
- python - 有没有办法避免在格式化字符串中使用双引号,这些字符串在 Python 中包含引号
- python - 带有 Flask 的 Sphinx 文档