Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XPATH/XSL术语以类似于HTML中使用粗体和斜体的方式使用嵌套节点的文本_Html_Xml_Xslt_Xpath_Xpath 2.0 - Fatal编程技术网

XPATH/XSL术语以类似于HTML中使用粗体和斜体的方式使用嵌套节点的文本

XPATH/XSL术语以类似于HTML中使用粗体和斜体的方式使用嵌套节点的文本,html,xml,xslt,xpath,xpath-2.0,Html,Xml,Xslt,Xpath,Xpath 2.0,这个问题类似: 但是,我想知道是否有一种方法可以处理引用嵌套元素外部的文本。例如,如果我使用这个: <xsl:apply-templates select="." mode="handle-emphasis" /> 要调用以下模板: <xsl:template match="p/emphasis[@type='italic']" mode="handle-emphasis"> <xsl:element name="i"> <x

这个问题类似:

但是,我想知道是否有一种方法可以处理引用嵌套元素外部的文本。例如,如果我使用这个:

<xsl:apply-templates select="." mode="handle-emphasis" />
要调用以下模板:

<xsl:template match="p/emphasis[@type='italic']" mode="handle-emphasis">
    <xsl:element name="i">
        <xsl:value-of select="text()" />
    </xsl:element>
</xsl:template>

<xsl:template match="p/emphasis[not(@type='italic')]" mode="handle-emphasis">
    <xsl:element name="b">
        <xsl:value-of select="text()" />            
    </xsl:element>
</xsl:template>

<xsl:template match="p/br" mode="handle-emphasis">

    <xsl:element name="br" />
</xsl:template>
然后我就能够成功地处理一些类似HTML粗体和斜体的自定义标记。但是,如果我创建了一个只匹配p的模板,那么对于“粗体”和“斜体”节点之外的文本,似乎不会执行该模板


我可能错过了一些简单的东西,但这让我发疯。非常感谢您的任何想法。

看起来您希望有一个匹配模式为p/text的模板

考虑发布XML输入、XSLT代码、所需结果和预期结果的最小但完整的代码示例,然后我们希望能够告诉您如何更改代码。至于您当前的代码,我想知道为什么您不编写而不是,为什么您不在模板内部通过执行而不是继续进行处理。同意@Martin:如果没有示例,很难理解您到底想做什么。完全正确!我没想到要尝试p/text。