【发布时间】:2012-01-05 10:44:12
【问题描述】:
我正在尝试使用 xslt 显示一个 xml 文件。在某些节点中,我在<code> 标签之间有数据。我不想显示代码标签。
那么如何使用 xslt 单独删除 &lt;code&gt; 和 </code> 标记。
我尝试了 translate(),但它认为模式是单独的字符,因此所有的 c、o、d、e 也会从 xml 内容中删除。
这是一个示例 xml 数据:
<results>
<result>
<resultType>Error</resultType>
<lineNum>3</lineNum>
<columnNum>1</columnNum>
<errorMsg><code>script</code> may cause screen flicker.<</errorMsg>
</result>
<result>
<resultType>Potential Problem</resultType>
<lineNum>6</lineNum>
<columnNum>2</columnNum>
<errorMsg><code>script</code> user interface may not be accessible.<
</errorMsg>
</result>
</results>
我的 xslt:
<table>
<tr class="header">
<th>Serial Number</th>
<th>Line Number</th>
<th>Error Message</th>
<th>Decision Pass</th>
</tr>
<xsl:for-each select="results/result">
<xsl:if test="resultType='Potential Problem'">
<xsl:variable name="eMsg" select="errorMsg"></xsl:variable>
<tr class="content">
<td><xsl:number format="1"/></td>
<td><xsl:value-of select="lineNum"/></td>
<td><xsl:value-of select="errorMsg" disable-output-escaping="yes"/></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
disable-output-escaping="yes" 不适用于 Firefox,因此请尝试删除 &lt;code&gt; 、 </code> 标签
【问题讨论】:
-
我只看到转义代码标签 (
&lt;code&gt;) - 即没有真正的 标签(在单独的 DOM 实体中) -
但它在浏览器中显示为
&lt;code&gt;.. -
这不是重点。如果您将其称为标签,它会使试图回答问题的人感到困惑,而实际上它已被小心地转义以防止将其视为标签。
-
哦,好吧.. 很抱歉造成混乱.. 我实际上是 xml n xslt 的新手,所以我不知道这一切