There is no such thing as "the" absolute path for an element. There are many different paths that will select an element. Examples of such paths that people sometimes ask for are:
/a/b/c/d
/a[1]/b[2]/c[3]/d[4]
/*[1]/*[2]/*[3]/*[4]
the problem with the first two cases is that they don't work if there are namespaces involved. The third path solves that problem but the path isn't as informative as people would sometimes like. If you want a path that is both informative and independent of the namespace context then you need something that uses predicates of the form *[local-name()='a' and namespace-uri()='......']
.
It's the difficulty with namespaces that means you don't find many library routines that return the path to an element.