我需要使用XPATH / XSLT找到并选择一个特定的文本子串(如果可能的话) - 在这种情况下,不间断空格“&#xa0”的实体代码然后在我的HTML输出中突出显示CSS。
我不是在特定元素节点内搜索,我需要从我的文档的根节点进行搜索,并在任何出现的地方找到该实体。我不知道这会出现在我的XML中,我只知道我正在寻找的实体代码。
以下是我的文档的一部分,其中“&#xa0”出现在文本中:
<row rowsep="1">
<entry align="left" colname="col1" colsep="1">
<para>N/A = not applicable/not generally used, A = applicable </para>
</entry>
</row>
我正在使用XSLT 2.0。
答案 0 :(得分:2)
使用XSLT 2.0,您可以在所有analyze-string
个节点上使用text()
,例如
<xsl:template match="text()">
<xsl:analyze-string select="." regex=" ">
<xsl:matching-substring>
<span class="highlight"><xsl:value-of select="."/></span>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
然后,您需要设置其他模板,将剩余的元素转换为HTML,其中包含CSS或链接到某些定义类似
的CSS文档 span.highlight { color: red; }
我的视图中需要span
或类似的包装元素,因为CSS不允许您在文本节点中设置单个字母或单词的样式。