【问题标题】:selecting whole set of nodes at once instead of each node recursively一次选择整个节点集,而不是递归地选择每个节点
【发布时间】:2013-10-11 15:26:38
【问题描述】:

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

我的 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>

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

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

【问题讨论】:

    标签: xml xpath xslt-2.0 xsl-variable


    【解决方案1】:

    有运营商&lt;&lt;&gt;&gt;

    <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"/>
    

    分组也可能有帮助

    【讨论】:

      猜你喜欢
      • 2015-06-29
      • 2022-08-16
      • 1970-01-01
      • 2018-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多