не совсем ясна формулировка задачи, и конечная цель применения.
уточните если я неправильно понял
[telepatmode]
вы хотите, чтобы по клику на элементе у вас в кукую-нибудь переменную выводился XPath-путь до этого элемента.
Необходимо уточнение, что до любого элемента есть БЕСКОНЕЧНОЕ множество XPath-путей.Из них достаточно большое количество приемлимой длины.а оптимальных из них еденицы(и то смотря что понимать под оптимальностью)
Приведу вариант для построения самого простого "неумного" XPath-пути
function get_xpath(node)
{
var num,sibling;
if(node.parentNode != undefined)
{
sibling=node.parentNode.getElementsByTagName(node.tagName);
for(num=0;num<sibling.length;num++)
if(node==sibling[num])
break;
return get_xpath(node.parentNode)+"/"+node.tagName+"["+(num+1)+"]";
}
else
return "/";
}
вроде бы все правильно написал, попробуйте.
вот HTML_ка для теста
<html>
<head>
<title>Выберите</title>
</head>
<body>
<span onclick="alert(get_xpath(this))">asdsad</span>
</body>
</html>
[/telepatmode]