0

我一直在寻找这个,可能实际上没有办法做到这一点:

我的 xml 文件看起来像这样:

<para>Play</para>
<para>MACBETH: My dearest love, <i>Duncan</i> comes here to-night.</para>
<para>LADY MACBETH:And when goes hence?</para>
<para>MACBETH:To-morrow, as he purposes. </para>
<para>End</para>

我已经找到了无数<para>为自己选择每个的方法,但我想<para>一次匹配所有节点(加上封闭的子节点)并将块存储在一个变量中。这甚至可能吗?

为了防止误解:如果上面的块被一个额外的节点包围,让我们称之为它<exmpl>,我会简单地匹配子<exmpl>节点并获得我想要的节点块。如果没有这样的父节点,我如何获得相同的结果 - 使用具有唯一内容的兄弟节点(“播放”和“结束”)似乎不起作用?

4

1 回答 1

0

有运算符<<>>

<xsl:variable name="start" select="//para[. = 'Play']"/>
<xsl:variable name="end" select="//para[. = 'End']"/>
<xsl:variable name="block" select="$start, $start//following-sibling::para[. &lt;&lt; $end], $end"/>

分组也可能有帮助

于 2013-10-11T16:05:32.143 回答