我有一些示例 XML:
<sample><![CDATA[Line 1<br />Line 2<br />Line 3<br />]]></sample>
我使用 ASP 使用样式表输出此 XML,如下所示:
Set xmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
xmlHttp.open "GET", URLxml, false
xmlHttp.send()
Set xslHttp = Server.CreateObject("Microsoft.XMLHTTP")
xslHttp.open "GET", xXsl, false
xslHttp.send()
Set xmlDoc = Server.CreateObject("MICROSOFT.XMLDOM")
Set xslDoc = Server.CreateObject("MICROSOFT.XMLDOM")
xmlDoc.async = false
xslDoc.async = false
xmlDoc.Load xmlHttp.responseXML
xslDoc.Load xslHttp.responseXML
Response.Write xmlDoc.transformNode(xslDoc)
然而,一旦编写完毕,HTML 输出将显示为:
Line 1<br />Line 2<br />Line 3
我可以看到 ASP 正在转换代码中的括号,但我不知道为什么。有什么想法吗?
我有一些示例 XML:
<sample><![CDATA[Line 1<br />Line 2<br />Line 3<br />]]></sample>
这是一个sample
元素与一个文本节点 child.
假设您应用恒等变换。那么结果将是:
<sample>Line 1<br />Line 2<br />Line 3<br /></sample>
为什么?由于文本节点和属性值具有特殊字符&
, <
and >
作为字符实体转义。
EDIT:当然,你可以使用 DOE...但是,除此之外,它是一个可选功能,无论如何,结果都将是一个文本节点(没有编码字符实体)。您将需要其他解析器 fase(当将 HTML 片段输出和编码为 (X)HTML 文档(例如在提要中)时,这可能很有用,但存在输出格式错误的风险...)。
这个样式表:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="sample">
<p>
<xsl:value-of select="." disable-output-escaping="yes"/>
</p>
</xsl:template>
</xsl:stylesheet>
Output:
<p>Line 1<br />Line 2<br />Line 3<br /></p>
渲染为(实际标记):
Line 1
Line 2
Line 3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)