xml - 在xml中添加天数
问题描述
我有一个如下的xml:
<?xml version='1.0' encoding='UTF-8'?>
<root>
<row>
<employee_id>1111</employee_id>
<State>TX</State>
<work_days>2</work_days>
</row>
<row>
<employee_id>1111</employee_id>
<State>FL</State>
<work_days>9</work_days>
</row>
<row>
<employee_id>2222</employee_id>
<State>FL</State>
<work_days>7</work_days>
</row>
<row>
<employee_id>2222</employee_id>
<State>NC</State>
<work_days>1</work_days>
</row>
我需要对每个员工的 state 和 work_days 数据进行分组,然后分别总结每个组的 Work_days。(请参阅下面的Sum标签)
Expected output:
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:xs="http://www.w3.org/2001/XMLSchema">
<row>
<employee_id>1111</employee_id>
<Data>
<State>TX</State>
<Work_days>2</Work_days>
</Data>
<Data>
<State>FL</State>
<Work_days>9</Work_days>
</Data>
<Sum>11</Sum> <----------
</row>
<row>
<employee_id>2222</employee_id>
<Data>
<State>FL</State>
<Work_days>7</Work_days>
</Data>
<Data>
<State>NC</State>
<Work_days>1</Work_days>
</Data>
<Sum>8</Sum> <----------
</row>
我可以使用下面的 xslt 对它们进行分组,但无法总结 wark_days:
<xsl:template match="root">
<root>
<xsl:for-each-group select="row" group-by="employee_id">
<row>
<employee_id><xsl:value-of select="employee_id" /></employee_id>
<xsl:for-each select="current-group()">
<Data>
<State><xsl:value-of select="State" /></State>
<Work_days><xsl:value-of select="work_days" /></Work_days>
</Data>
</xsl:for-each>
<sum><xsl:value-of select="sum(work_days)"/></sum> <----------
</row>
</xsl:for-each-group>
</root>
</xsl:template>
</xsl:stylesheet>
我现在得到的输出是:
<row>
<employee_id>1111</employee_id>
<Data>
<State>TX</State>
<Work_days>2</Work_days>
</Data>
<Data>
<State>FL</State>
<Work_days>9</Work_days>
</Data>
<sum>2</sum> <----------
</row>
<row>
<employee_id>2222</employee_id>
<Data>
<State>FL</State>
<Work_days>7</Work_days>
</Data>
<Data>
<State>NC</State>
<Work_days>1</Work_days>
</Data>
<sum>7</sum> <----------
</row>
请帮助正确获得总和。
解决方案
采用<xsl:value-of select="sum(current-group()/work_days)"/>
推荐阅读
- html - div中多个孩子的css高度
- sql - 特定组值的平均值
- etl - 如何正确地将这个简单的 SQL 逻辑插入到已经存在的脚本中?
- python - 使用 asyncio 和 aiohttp 长时间运行的请求
- pm2 - 如果最后 X 分钟没有新日志,如何重新启动 PM2 进程?
- javascript - 如何基于滚动事件延迟渲染大型数据集?
- typescript - 如何在返回 ES6 Map 的 reduce 函数中设置正确的类型?
- azure - Azure Cosmos DB - 我可以使用并非所有文档都存在的 JSON 字段作为我的分区键吗?
- javascript - 用于检查护照/谷歌身份验证的 Graphql 查询
- python - 制作if语句时如何创建范围