Html 如何在XSL中比较来自不同父级的两个元素
我有一个HTML时间表,如下所示: +------+--------+----------+---------+----------+--------+ | Time | Monday | Tuesday |Wednesday| Thursday | Friday | +======+========+==========+=========+==========+========+ | 8:00 | event1 | | | | | +------+--------+----------+---------+----------+--------+ | 9:00 | event1 | | | | | +------+--------+----------+---------+----------+--------+ | 10:00| event1 | | event2 | | | | | | | event3 | | | +------+--------+----------+---------+----------+--------+ | 11:00| | | event3 | | | +------+--------+----------+---------+----------+--------+ | 12:00| | | event3 | | | +------+--------+----------+---------+----------+--------+ +------+--------+----------+---------+----------+--------+ |时间|周一|周二|周三|周四|周五| +======+========+==========+=========+==========+========+ |8:00 |事件1 | | | || +------+--------+----------+---------+----------+--------+ |9:00 |事件1 | | | || +------+--------+----------+---------+----------+--------+ |10:00 |事件1 |事件2 || || | |事件3 | || +------+--------+----------+---------+----------+--------+ |11:00 | | |事件3 | || +------+--------+----------+---------+----------+--------+ |12:00 | | |事件3 | || +------+--------+----------+---------+----------+--------+Html 如何在XSL中比较来自不同父级的两个元素,html,xslt-1.0,xpath-1.0,Html,Xslt 1.0,Xpath 1.0,我有一个HTML时间表,如下所示: +------+--------+----------+---------+----------+--------+ | Time | Monday | Tuesday |Wednesday| Thursday | Friday | +======+========+==========+=========+==========+========+ | 8:00 | event1 | | | |
时间
星期一
星期二
星期三
星期四
星期五
8:00
事件1
9:00
事件1
10:00
事件1
事件2事件3
11:00
事件3
12:00
事件3
是否可以在单个for-each循环中访问与其父循环处于相同位置但在前面的
中的
我尝试过做类似的事情,除了同时进行的event2和event3之外,它工作得很好
<xsl:variable name="periodes">
<xsl:for-each select="table/tr/td[position() = 2]"> <!-- And to the same for every columns -->
<xsl:if test="not(.=preceding::td)">
<starts><xsl:value-of select="../td[position() =1]"/></starts>
</xsl:if>
<xsl:if test="not(.=following::td)">
<ends><xsl:value-of select="../td[position() =1]"/></ends>
<eventName><xsl:value-of select="."/></eventName>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:for-each select="exslt:node-set($periodes)/*">
<day>1</day>
<eventName><xsl:value-of select="eventName"/></eventName>
<starts><xsl:value-of select="starts"/></starts>
<ends><xsl:value-of select="ends"/></ends>
</xsl:for-each>
1.
最重要的是,它不能按预期工作,这种方法有点烦人,因为我需要5个不同的循环。他们是我实现这一目标的途径吗
输出应该类似于
<events>
<event>
<day>1</day>
<eventName>event1</eventName>
<starts>8:00</starts>
<ends>11:00</ends>
</event>
<event>
<day>3</day>
<eventName>event2</eventName>
<starts>10:00</starts>
<ends>11:00</ends>
</event>
<event>
<day>3</day>
<eventName>event3</eventName>
<starts>10:00</starts>
<ends>13:00</ends>
</event>
</events>
1.
事件1
8:00
11:00
3.
事件2
10:00
11:00
3.
事件3
10:00
13:00
当您内联包含XML标记时,必须将它们括在后引号中,使其成为代码格式;否则它们就会消失。我已经帮你修好了。谢谢,我没注意到它们已经消失了。
<events>
<event>
<day>1</day>
<eventName>event1</eventName>
<starts>8:00</starts>
<ends>11:00</ends>
</event>
<event>
<day>3</day>
<eventName>event2</eventName>
<starts>10:00</starts>
<ends>11:00</ends>
</event>
<event>
<day>3</day>
<eventName>event3</eventName>
<starts>10:00</starts>
<ends>13:00</ends>
</event>
</events>