Searching a DOM Tree using XPath

This topic explains how to search in a DOM tree using an XPath expression.


XPath is a simple query language for XML. An XPath expression describes a subset of an XML tree, such as all the elements with a specified name, or all the children of a specific node. Evaluating an XPath expression means searching in the XML tree for matching nodes or content: clients of the XML Engine use it to explore XML data.

The following steps show how to make an XPath query with the XML Engine.


Before you start, you must:


  1. Create an instance of RXmlEngXPathExpression by calling the TXmlEngXpathEvaluator::CreateExpressionL() method.


    RXmlEngXPathExpression expr = TXmlEngXpathEvaluator::CreateExpressionL( "@*" );
    This XPath expression is only useful to illustrate this tutorial: it returns all the attributes in an XML tree.
  2. Evaluate the XPath expression by applying it to your XML document.


    RXmlEngXPathResult searchResult = expr.EvaluateL( myDoc );
    The searchResult variable contains a tree of TXmlEngAttr objects. This tree is a subset of the DOM tree.
  3. Use the result, for example by accessing it as a node set as follows:


    RXMLEngNodeSet set = result.AsNodeSet();
    if( for TInt i = 0; i < set.Length(); i++ )
        TXmlEngNode resultNode = set[i];
        /* [...] do something with the result */
  4. Free your resources as necessary.

Related tasks