Извлечение XPath-запроса для данного элемента - PullRequest
1 голос
/ 25 июля 2011

Есть ли способ извлечь строку запроса XPath с помощью javascript для данного элемента, например, функциональность firebug «Copy XPath».

Спасибо

1 Ответ

2 голосов
/ 25 июля 2011

Вы имели в виду, что вам нужно что-то вроде этого:

var getXPath = function(aNode) {
    var xpath = '', prevSibling = aNode, position = 1, nodeType = aNode.nodeType, nodeName = aNode.nodeName;

    while (prevSibling = prevSibling.previousSibling) {
        if (prevSibling.nodeType == nodeType && prevSibling.nodeName == nodeName) {
            position += 1;
        }
    }

    xpath = ((nodeType == 3 /* TEXT_NODE */) ? 'text()' : nodeName) + '[' + position + ']' + (xpath.length ? '/' + xpath : '');

    if (aNode.parentNode && aNode.parentNode.nodeName != 'BODY') {
        return xpath = (getXPath(aNode.parentNode, xpath) + '/' + xpath).toLowerCase();
    }

    return xpath;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...