需求:统计XML中值为true的ProductOwner数量并生成指定XML
解决XSL统计ProductOwner为true的Client节点数量问题
我来帮你搞定这个统计需求!这里是完全贴合你源XML和输出结构要求的XSL转换代码:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <!-- 匹配根节点ClientList,开始构建输出结构 --> <xsl:template match="/ClientList"> <ClientList> <Client> <!-- 核心统计逻辑:筛选ProductOwner为true的Client并计数 --> <Number> <xsl:value-of select="count(Client[ProductOwner='true'])"/> </Number> </Client> </ClientList> </xsl:template> </xsl:stylesheet>
关键逻辑说明
- 首先指定了XSL版本和标准命名空间,同时设置输出为带缩进的XML,让结果更易读。
- 通过匹配根节点
<ClientList>,严格按照你期望的输出结构创建新的XML节点。 - 核心统计部分的
count(Client[ProductOwner='true']):Client[ProductOwner='true']会精准筛选出所有子节点中<ProductOwner>文本值为true的<Client>节点;count()函数返回这个筛选结果的节点数量,最终把数值填入<Number>元素中。
用你提供的源XML测试这段XSL,会得到完全符合要求的输出:
<ClientList> <Client> <Number>1</Number> </Client> </ClientList>
内容的提问来源于stack exchange,提问作者Name
相关产品推荐
相关产品推荐

