为什么这段代码会在IE上给我以下错误:“未知方法。// author [@select =-> concat('tes'
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);
}
}
最佳答案
好吧Microsoft.XMLDOM
是一个过时的编程ID,最终您会得到一个旧的MSXML版本,默认情况下它不支持XPath 1.0,而是一个旧的,从未标准化的草稿版本。如今,MSXML 6是Microsoft所支持的任何OS或具有最新Service Pack的OS的一部分,因此只需考虑使用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
。关于javascript - IE9上的JavaScript。 XMLDOM.selectSingleNode提供未知方法-> concat,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10522236/