3

このコードでIEで次のエラーが発生するのはなぜですか:"UnknownMethod。//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);
    }
}
4

1 に答える 1

5

まあMicrosoft.XMLDOM、時代遅れのプログラミングIDであり、デフォルトでXPath 1.0をサポートしない古いMSXMLバージョンになってしまいますが、標準化されていない古いドラフトバージョンになります。最近のMSXML6は、Microsoftがサポートする最新のサービスパックを備えたOSまたはOSの一部であるため、MSXML6DOMドキュメントを次のように使用することを検討してください。

        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");
        }

を使用することを主張する場合は、XPath1.0を使用しようとするMicrosoft.XMLDOM呼び出しdoc.setProperty("SelectionLanguage", "XPath")の前に呼び出します。selectSingleNodeselectNodes

于 2012-05-10T09:19:31.883 に答える