XPathExpression Class

 

Provides a typed class that represents a compiled XPath expression.

Namespace:   System.Xml.XPath
Assembly:  System.Xml (in System.Xml.dll)

System::Object
  System.Xml.XPath::XPathExpression

public ref class XPathExpression abstract 

NameDescription
System_CAPS_pubpropertyExpression

When overridden in a derived class, gets a string representation of the XPathExpression.

System_CAPS_pubpropertyReturnType

When overridden in a derived class, gets the result type of the XPath expression.

NameDescription
System_CAPS_pubmethodAddSort(Object^, IComparer^)

When overridden in a derived class, sorts the nodes selected by the XPath expression according to the specified IComparer object.

System_CAPS_pubmethodAddSort(Object^, XmlSortOrder, XmlCaseOrder, String^, XmlDataType)

When overridden in a derived class, sorts the nodes selected by the XPath expression according to the supplied parameters.

System_CAPS_pubmethodClone()

When overridden in a derived class, returns a clone of this XPathExpression.

System_CAPS_pubmethodSystem_CAPS_staticCompile(String^)

Compiles the XPath expression specified and returns an XPathExpression object representing the XPath expression.

System_CAPS_pubmethodSystem_CAPS_staticCompile(String^, IXmlNamespaceResolver^)

Compiles the specified XPath expression, with the IXmlNamespaceResolver object specified for namespace resolution, and returns an XPathExpression object that represents the XPath expression.

System_CAPS_pubmethodEquals(Object^)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodSetContext(IXmlNamespaceResolver^)

When overridden in a derived class, specifies the IXmlNamespaceResolver object to use for namespace resolution.

System_CAPS_pubmethodSetContext(XmlNamespaceManager^)

When overridden in a derived class, specifies the XmlNamespaceManager object to use for namespace resolution.

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

This class is returned as the result of the Compile method of the XPathNavigator class. It is a parameter to the Evaluate, Matches, Select, and SelectSingleNode methods of the XPathNavigator class.

Notes to Inheritors:

When you inherit from the XPathExpression class, you must override the following members:

The following example shows how to use the XPath return type to determine how to process the XPath expression.

public ref class Sample
{
public:
   static void Evaluate( XPathExpression^ expr, XPathNavigator^ nav )
   {
      XPathNodeIterator^ i = nav->Select(expr);
      switch ( expr->ReturnType )
      {
         case XPathResultType::Number:
            Console::WriteLine( nav->Evaluate( expr ) );
            break;

         case XPathResultType::NodeSet:
            while ( i->MoveNext() )
                        Console::WriteLine( i->Current );
            break;

         case XPathResultType::Boolean:
            if ( *safe_cast<bool^>(nav->Evaluate( expr )) )
                        Console::WriteLine( "True!" );
            break;

         case XPathResultType::String:
            Console::WriteLine( nav->Evaluate( expr ) );
            break;
      }
   }

};

int main()
{
   XPathDocument^ doc = gcnew XPathDocument( "contosoBooks.xml" );
   XPathNavigator^ nav = doc->CreateNavigator();
   XPathExpression^ expr1 = nav->Compile( ".//price/text()*10" ); // Returns a number.

   XPathExpression^ expr2 = nav->Compile( "bookstore/book/price" ); // Returns a nodeset.

   Sample^ MySample = gcnew Sample;
   MySample->Evaluate( expr1, nav );
   MySample->Evaluate( expr2, nav );
}

The example takes the contosoBooks.xml file as input.


<?xml version="1.0" encoding="utf-8" ?>
<bookstore xmlns="http://www.contoso.com/books">
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
        <title>The Autobiography of Benjamin Franklin</title>
        <author>
            <first-name>Benjamin</first-name>
            <last-name>Franklin</last-name>
        </author>
        <price>8.99</price>
    </book>
    <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
        <title>The Confidence Man</title>
        <author>
            <first-name>Herman</first-name>
            <last-name>Melville</last-name>
        </author>
        <price>11.99</price>
    </book>
    <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
        <title>The Gorgias</title>
        <author>
            <name>Plato</name>
        </author>
        <price>9.99</price>
    </book>
</bookstore>

.NET Framework
Available since 1.1
Silverlight
Available since 4.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: