为什么这段代码在IE上给我以下错误:“Unknown Method。// author [@select = - > concat('tes'< - ,'ts')]?
function a()
{
try
{
var xml ='<?xml version="1.0"?><book><author select="tests">blah</author></book>';
var doc = new ActiveXObject("Microsoft.XMLDOM");
doc.loadXML(xml);
node = doc.selectSingleNode("//author[@select = concat('tes','ts')]");
if(node == null)
{
alert("Node is null");
}
else
{
alert("Node is NOT null");
}
} catch(e)
{
alert(e.message);
}
}
答案 0 :(得分:5)
好Microsoft.XMLDOM
是一个过时的编程ID,你最终得到一个旧的MSXML版本,默认情况下不支持XPath 1.0,而是一个旧的,从未标准化的草案版本。目前,MSXML 6是具有Microsoft支持的最新Service Pack的任何操作系统或操作系统的一部分,因此只需考虑使用MSXML 6 DOM文档,例如。
var xml ='<?xml version="1.0"?><book><author select="tests">blah</author></book>';
var doc = new ActiveXObject("Msxml2.DOMDocument.6.0");
doc.loadXML(xml);
node = doc.selectSingleNode("//author[@select = concat('tes','ts')]");
if(node == null)
{
alert("Node is null");
}
else
{
alert("Node is NOT null");
}
如果您坚持使用Microsoft.XMLDOM
,请在尝试使用XPath 1.0的任何doc.setProperty("SelectionLanguage", "XPath")
或selectSingleNode
来电之前致电selectNodes
。