IE9上的JavaScript。 XMLDOM.selectSingleNode给出了Unknown方法 - > concat

时间:2012-05-09 18:46:32

标签: javascript xpath

为什么这段代码在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);
    }
}

1 个答案:

答案 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