我想用打开/关闭标签转换处理指令,如下所示:
<para><?Pub _font Weight="bold"?>Date Re-inspected<?Pub /_font?></para>
至
<div class="x-para-9-5"><span style="font-weight: bold">Date Re-inspected</span></div>
我试图实现处理指令转换,但第一个 PI 的直接兄弟文本节点的第二个副本没有被删除(作为一个新手,我不明白为什么这段代码会删除它):
我不想要的结果:
<div class="x-para-9-5"><span style="font-weight:bold;">Date Re-inspected</span>Date Re-inspected</div>
这是我的代码,根据上面提到的另一个问题稍作修改:
<xsl:template match="processing-instruction('Pub')">
<xsl:choose>
<xsl:when test="starts-with(., '_font')">
<xsl:choose>
<xsl:when test="contains(.,'bold')">
<span style="font-weight:bold;">
<xsl:apply-templates select="following-sibling::node()[1][self::text()]"/>
</span>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="starts-with(., '/_font')
| text()[preceding-sibling::node()[1][self::processing-instruction('_font')]]">
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:template>
任何建议表示赞赏,这是我使用 XSL 的第一周。