XPath: Difference between revisions
add ugly link, will expand later |
m →XPath Result Types: Fixed incorrect == level for XPathResult and linked in new page. |
||
Line 11: | Line 11: | ||
The most convenient way to use XPath in Greasemonkey scripts is with a [[Code_snippets#XPath_helper|helper function]]. The insides of that function illustrate the less convenient way. The native method is through the <code>document.evaluate</code> function. | The most convenient way to use XPath in Greasemonkey scripts is with a [[Code_snippets#XPath_helper|helper function]]. The insides of that function illustrate the less convenient way. The native method is through the <code>document.evaluate</code> function. | ||
== | == XPathResult Types == | ||
* [[XPathResult#Constants|Constants]] | |||
* [http://developer.mozilla.org/en/Introduction_to_using_XPath_in_JavaScript#XPathResult_Defined_Constants Further reading at Mozilla Developer Center] | |||
== Relative paths == | == Relative paths == |
Revision as of 05:58, 4 January 2009
XPath (XML Path Language) is a language for addressing elements in a XML or HTML document. XPath expressions describe paths in a tree represention of the document.
XPath is very fast compared to manual DOM traversal (see e.g. getElementsByClassName Speed Comparison).
This page is intended for tips and gotchas related to using XPath in Greasemonkey scripts, not complete documentation. See the links below for that.
Using XPath in Greasemonkey
The most convenient way to use XPath in Greasemonkey scripts is with a helper function. The insides of that function illustrate the less convenient way. The native method is through the document.evaluate
function.
XPathResult Types
Relative paths
Note that relative XPath expressions, that start from some specific node, do not begin with a /
. Start them with a period, e.g. .//a
, or an axis, e.g. descendant::a
. The default axis is child
, so just a
works to find an immediate descendant.
Extensions
You can quickly determine the XPath to an element with the XPath Checker addon. Just right-click an element and select "XPath". A window will pop up with the expression. You can also experiment with new expressions interactively.
Another extension is XPather, which relies on DOM Inspector.
In FireBug, you can right-click a node in the HTML inspector and select "Copy XPath". A $x
function (like the XPath helper function linked above but with no support for specifying a context node) is available in the Firebug console.