我在下面有一个代码段,用于使用isXML function of ColdFusion检查xml是否有效。
我用过
]]]]><![CDATA[>
而不是
]]>
用于逃避CDATA。
我发现这里发生了一些奇怪的事情。即,对于未解析的XML,isXML返回true,对于解析的XML,它返回false。我能知道为什么吗?
<cfsavecontent variable="test">
<TEST><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<Configuration>
<type>XML</type>
<mapping><![CDATA[<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>]]]]><![CDATA[>
</mapping>
</Configuration>]]></TEST>
<cfdump var="#isXML(test)#">
<cfdump var="#xmlParse(test)#">
<cfdump var="#isXML(xmlParse(test))#"><cfabort>
您可以找到gist here