首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果从p元素处理指令节点开始,那么如何在p元素之前移动处理指令position[1]?- XSLT

如果从p元素处理指令节点开始,那么如何在p元素之前移动处理指令position[1]?- XSLT
EN

Stack Overflow用户
提问于 2020-10-23 08:25:49
回答 1查看 32关注 0票数 0

如果从p元素处理指令节点开始,那么如何在p元素之前移动处理指令position1?- XSLT

输入

代码语言:javascript
复制
<root>
    <p><?page 1?>aaaa bbbb <?page 2?>cccccc</p>
    <p>aaaa <?page 3?>bbbb <?page 4?>ccccc</p>
</root>

预期输出

代码语言:javascript
复制
<root>
    <?page 1?><p>aaaa bbbb <?page 2?>cccccc</p>
    <p>aaaa <?page 3?>bbbb <?page 4?>ccccc</p>
</root>

XSLT

代码语言:javascript
复制
<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="p[count(processing-instruction()) > 1]">
    <xsl:apply-templates select="processing-instruction()[1]"/>
    <xsl:copy>
        <xsl:apply-templates select="node() except processing-instruction()[1]"/>
    </xsl:copy>
</xsl:template>
EN

回答 1

Stack Overflow用户

发布于 2020-10-23 08:42:35

解决了

代码语言:javascript
复制
    <xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="p[count(processing-instruction()) > 1 and child::processing-instruction()[not(preceding-sibling::node())]]">
    <xsl:apply-templates select="processing-instruction()[1]"/>
    <xsl:copy>
        <xsl:apply-templates select="node() except processing-instruction()[1]"/>
    </xsl:copy>
</xsl:template>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64496502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档