selectSingleNode is not a function in chrome

김경민·2022년 6월 14일
1
post-thumbnail

selectSingleNode is not a function in chrome

// check for XPath implementation

if (document.implementation.hasFeature("XPath", "3.0")) {

    // prototying the XMLDocument.selectNodes

    XMLDocument.prototype.selectNodes = function(cXPathString, xNode) {

        if (!xNode) { xNode = this; }

        var oNSResolver = document.createNSResolver(this.ownerDocument == null ? this.documentElement : this.ownerDocument.documentElement);

        function resolver() {

            return 'http://schemas.saarchitect.net/ajax/2008/09/user';

        }

        var aItems = this.evaluate(cXPathString, xNode, resolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

        var aResult = [];

        for (var i = 0; i < aItems.snapshotLength; i++) {

            aResult[i] = aItems.snapshotItem(i);

        }

        return aResult;

    }

    // prototying the Element

    Element.prototype.selectNodes = function(cXPathString) {

        if (this.ownerDocument.selectNodes) {

            return this.ownerDocument.selectNodes(cXPathString, this);

        }

        else { throw "For XML Elements Only"; }

    }

    // prototying the XMLDocument.selectSingleNode

    XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode) {

        if (!xNode) { xNode = this; }

        var xItems = this.selectNodes(cXPathString, xNode);

        if (xItems.length > 0) {

            return xItems[0];

        }

        else {

            return null;

        }

    }

    // prototying the Element

    Element.prototype.selectSingleNode = function(cXPathString) {

        if (this.ownerDocument.selectSingleNode) {

            return this.ownerDocument.selectSingleNode(cXPathString, this);

        }

        else { throw "For XML Elements Only"; }

    }

};

http://gnujava.com/board/article_view.jsp?article_no=5571&menu_cd=24&board_no=11&table_cd=EPAR04&table_no=04

0개의 댓글