转义CDATA导致isXML对于已解析的XML为false

时间:2016-12-06 07:09:20

标签: xml coldfusion xml-parsing cdata

我在下面有一个代码段,用于使用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

0 个答案:

没有答案