本文介绍了查找每两个处理指令之间的所有 XML 节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用 XPath 或 XSLT 1.0,我需要找到处理指令 .代码如下:

XPath or XSLT 1.0, I need to find each node betwe<? and <?. The following code:

//node()[preceding-sibling::processing-instruction()[self::processing-instruction('

工作,但自然地,它只选择第一个 PI 和最后一个 PI 之间的节点.有没有办法只选择每个开始 - 结束对之间的节点?

<root> abc<?

推荐答案

这是一个 XSLT 2.0 示例,它使用 for-each-group group- 来查找并输出这些处理指令对之间的节点:

for-each-group group- to find and output the nodes betwe

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
    version="2.0">

<xsl:output ind

样品的结果是

<group>def<Highlighted bold="yes">
      <Highlighted italic="yes">ghi</Highlighted>
   </Highlighted>jkl
    <?pi?>
    <table>
        <Caption>stu</Caption>
    </table>vw

    </group>
<group>
    abc <Caption>def</Caption> ghi</group>

使用 XSLT 1.0,您可以计算 pi 之后和 pi 之前的节点的交集:

pi and preceding the pi:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">

    <xsl:output ind

这篇关于查找每两个处理指令之间的所有 XML 节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

查看更多