选择 XSLT 中的第一个和第二个节点
给定以下结构,如何根据 XSLT 中的谓词从文档中复制第一个和第二个节点及其所有元素:
<list>
<slot>xx</slot>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
</list>
<list>
<slot>xx</slot>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
</list>
如何选择数据的第一次和第二次出现(没有数据元素本身,只有姓名、年龄) ),其中槽等于另一个变量,即第一个列表具有 slot=02
,但我需要第二个列表中的数据,其中 slot=01
。但槽的列表顺序并不重要,只要 slot=$slotvariable
即可。
我尝试了以下声明,但没有产生任何结果:
<xsl:element name="{'Lastdata'}">
<xsl:copy-of select="list/data[position()=1 and slot = $slotvariable]" />
</xsl:element>
<xsl:element name="{'prevdata'}">
<xsl:copy-of select="list/data[position()=2 and slot = $slotvariable]" />
</xsl:element>
任何工作建议将不胜感激
Given the following structure, how to copy the first and the second nodes with all their elements from the document based on the predicate in XSLT:
<list>
<slot>xx</slot>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
</list>
<list>
<slot>xx</slot>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
</list>
How to select the first and the second occurence of data (without the data element itself, only name, age) from the list, where the slot is equal to a different variable, i.e the first list has the slot=02
, but I need the data from the second list, where the slot=01
. But it does not really matter the order of the list by a slot as long as slot=$slotvariable
.
I tried the following statement, but it did not produce any results:
<xsl:element name="{'Lastdata'}">
<xsl:copy-of select="list/data[position()=1 and slot = $slotvariable]" />
</xsl:element>
<xsl:element name="{'prevdata'}">
<xsl:copy-of select="list/data[position()=2 and slot = $slotvariable]" />
</xsl:element>
Any working suggestions would be appreciated
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果我正确理解您的问题,那么:
提示:
除非您有基于表达式的动态名称。[1]
是[position() = 1]
的简写If I understood your question correctly, then:
Hints:
<xsl:element>
unless you have a dynamic name based on an expression.[1]
is a shorthand for[position() = 1]
以下样式表:
应用于此源:
产生以下结果:
The following stylesheet:
Applied to this source:
Produces the following result: