关键词:
【中文标题】行计数,包括转换节点【英文标题】:Row counting including transformed nodes 【发布时间】:2021-11-19 01:20:32 【问题描述】:我需要正确的行计数(在属性pos
="1"、"2" 等中)用于从其子元素部分转换的line
元素节点。
XSLT 代码的当前 counting-part 无法正常工作。我还尝试创建一个变量模板来计算所需的节点,但到目前为止该变量是无用的,因为尚不完全清楚如何在下一步中应用它。
源 XML
<?xml version="1.0" encoding="UTF-8"?>
<entry>
<line id="001" att1="aaa" att2="bbb" att3="ccc"/>
<line id="002" att1="ddd" att2="eee" att3="fff"/>
<line id="003" att1="ggg" att2="hhh" att3="iii">
<subline x="name" z="lastname"/>
<subline x="name2" z="lastname2"/>
<underline a="bar" b="foo"/>
</line>
</entry>
期望的输出(无论如何pos=
在属性中的位置可以是任意的)
<?xml version="1.0" encoding="UTF-8"?><entry>
<entry>
<line pos="1" id="001" att1="aaa" att2="bbb" att3="ccc"/>
<line pos="2" id="002" att1="ddd" att2="eee" att3="fff"/>
<line pos="3" id="003" att1="ggg" att2="hhh" att3="iii" x="name" z="lastname"/>
<line pos="4" id="003" att1="ggg" att2="hhh" att3="iii" x="name2" z="lastname2"/>
<line pos="5" id="003" att1="ggg" att2="hhh" att3="iii" a="bar" b="foo"/>
</entry>
提供 XSLT 代码
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="line[*]">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/">
<xsl:for-each select="entry/line">
<xsl:variable name="pos" select="position()" />
</xsl:for-each>
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="line/*">
<line pos="position()">
<xsl:copy-of select="../@* | @*"/>
</line>
</xsl:template>
</xsl:stylesheet>
【问题讨论】:
请解释一下跳过数字4的逻辑。 只是一个错误。谢谢,已更正 【参考方案1】:怎么样:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/entry">
<xsl:copy>
<xsl:for-each select="line[not(*)] | line/*">
<line pos="position()">
<xsl:copy-of select="parent::line/@* | @*"/>
</line>
</xsl:for-each>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
【讨论】:
Oracle 按时间段对合格行进行分组,包括零计数
】Oracle按时间段对合格行进行分组,包括零计数【英文标题】:Oraclegroupqualifyingrowsbytimeperiodincludingzerocounts【发布时间】:2014-05-1204:38:28【问题描述】:假设我有一个Oracle10g表,它记录了我系统上的所有响应时间。如何按日期获... 查看详情
MySQL 计数行包括零(非常接近我想要的!)
】MySQL计数行包括零(非常接近我想要的!)【英文标题】:MySQLcountrowsincludezero(soclosetowhatIwant!)【发布时间】:2012-06-0411:37:11【问题描述】:我知道我已经很近了,它正在杀死我。这里需要一双新的眼睛......SELECTfirst_name,COUNT(*)FR... 查看详情
计数行在 Codeigniter 中按 Id 包括 JSON
】计数行在Codeigniter中按Id包括JSON【英文标题】:CountingRowsIncludesJSONbyIdinCodeigniter【发布时间】:2021-12-2206:15:40【问题描述】:我们有一个组表名称为“组”(有邮件组)我们有一个人表名称为“人”(有些人有在邮件组中)我... 查看详情
洛谷——p3914染色计数
P3914染色计数题目描述有一颗NN个节点的树,节点用1,2,cdots,N1,2,?,N编号。你要给它染色,使得相邻节点的颜色不同。有MM种颜色,用1,2,cdots,M1,2,?,M编号。每个节点可以染MM种颜色中的若干种,求不同染色方案的数量除以(10^9+7109+7)的... 查看详情
洛谷p3914染色计数
P3914染色计数题目描述有一颗NN个节点的树,节点用1,2,cdots,N1,2,?,N编号。你要给它染色,使得相邻节点的颜色不同。有MM种颜色,用1,2,cdots,M1,2,?,M编号。每个节点可以染MM种颜色中的若干种,求不同染色方案的数量除以(10^9+7109+7)的... 查看详情
将列计数转换为行计数的 SQL 查询
】将列计数转换为行计数的SQL查询【英文标题】:SQLQuerytoTransposeColumnCountstoRowCounts【发布时间】:2014-09-1122:18:13【问题描述】:我有一个如下所示的表格,其中显示了类型的数量。我需要并且一直在尝试将数据显示为1列和7行,... 查看详情
将按月分组的行计数为列
】将按月分组的行计数为列【英文标题】:Countrowsgroupedbymonthsascolumns【发布时间】:2020-12-0311:26:29【问题描述】:我有以下数据(实际上跨越多年,但对于这个例子,我只包括了4个月)idcreated_atstaff--------------------------------12010-0... 查看详情
spring+Hibernate 一对多计数行
】spring+Hibernate一对多计数行【英文标题】:spring+Hibernateonetomanycountrows【发布时间】:2017-06-1100:58:50【问题描述】:我在休眠中的“发布”和“评论”实体之间存在一对多关系。一个帖子可以有多个cmets(Post)1-N(Comment),因此comment... 查看详情
奥运奖牌计数
总时间限制: 1000ms 内存限制: 65536kB描述2008年北京奥运会,A国的运动员参与了n天的决赛项目(1≤n≤17)。现在要统计一下A国所获得的金、银、铜牌数目及总奖牌数。输入输入n+1行,第1行是A国参与决赛项目的天数n,... 查看详情
奥运奖牌计数
描述2008年北京奥运会,A国的运动员参与了n天的决赛项目(1≤n≤17)。现在要统计一下A国所获得的金、银、铜牌数目及总奖牌数。输入输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、... 查看详情
jvm垃圾回收机制
首先JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、方法区、堆区。其中程序计数器、虚拟机栈和本地方法栈3个区域随线程启动与销毁,因此这几个区域的内存分配和回收都具有确定性,不需要过多考虑回收... 查看详情
奥运奖牌计数
总时间限制:1000ms内存限制:65536kB描述2008年北京奥运会,A国的运动员参与了n天的决赛项目(1≤n≤17)。现在要统计一下A国所获得的金、银、铜牌数目及总奖牌数。输入输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每一... 查看详情
XPath 计数转换的行
】XPath计数转换的行【英文标题】:XPathCountTransformedLines【发布时间】:2014-05-0209:25:41【问题描述】:我需要将填充记录附加到使用XSLT生成的文件中。需要将文件中的总行数四舍五入到最接近的10,这样如果存在以下情况:FileHead... 查看详情
spfa最短路计数
最短路计数【问题描述】 给出一个N个顶点M条边的无向无权图,顶点编号为1~N。问从顶点1开始,到其他每个点的最短路有几条。 【输入格式】 输入第一行包含2个正整数N,M,为图的顶点数与边数。接下来M行,... 查看详情
为啥 SQL 计数(*)与 SQL 计数(数字)存在行为差异
】为啥SQL计数(*)与SQL计数(数字)存在行为差异【英文标题】:WhythereisabehaviordifferenceofSQLcount(*)vsSQLcount(numeric)为什么SQL计数(*)与SQL计数(数字)存在行为差异【发布时间】:2017-05-0313:17:54【问题描述】:我知道count(*)-将返... 查看详情
pandas根据列数据的值范围计数?
假设有这么一个DataFrame数据:有两列,name列为姓名,age列为年龄,其中年龄为随机生成,如下图:我们可以使用loc来得到age>20的行:data.loc[条件]其中条件为data['age']>20即:data.loc[data['age']>20]这样就会得到age>... 查看详情
p1144最短路计数
P1144最短路计数题目描述给出一个N个顶点M条边的无向无权图,顶点编号为1~N。问从顶点1开始,到其他每个点的最短路有几条。输入输出格式输入格式: 输入第一行包含2个正整数N,M,为图的顶点数与边数。接下来M行... 查看详情
轻松构建复杂数据集,永洪自服务数据查询功能详解
...l)通过连线的方式,联合节点可以将列数相同的表的数据(包括重复数据行)拼接在一起。举例:A表包括1日到20日的交易信息,B表包括21日到30日的交 查看详情