test.xml:
<root>
<child>
only text
<![CDATA[a CDATA text]]>
</child>
</root>
由于在MSXML 4.0之前的版本,XML的查询语言支持XSL Patterns,并且是默认的查询语言,所以在MSXML 3.0的版本中,可以这样做:
var xmlDoc=new ActiveXObject("MSXML2.DOMDocument.3.0");
xmlDoc.load("test.xml");
var root=xmlDoc.documentElement;
var node=root.selectSingleNode("/root/child/cdata()");//xpath中不支持cdata()
alert(node.text);
由于4.0不再支持XSL Patterns,要获得CDATA只能是这样:
var node=root.selectSingleNode("/root/child");
alert(node.childNodes[1].text);
如果4.0以上,有什么API可以直接获得CDATA的值,请在评论给我留言告诉我 :)