System::Xml::XPath::XPathNavigator Class Reference

#include "xml/xpath/xpath_navigator.h"

Inherits System::Xml::XPath::XPathItem, and System::Xml::XPath::IXPathNavigable.

Public Types

typedef SharedPtr< XPathNavigatorPtr
 An alias for shared pointer to an instance of this class. More...
 
- Public Types inherited from System::Xml::XPath::XPathItem
typedef SharedPtr< XPathItemPtr
 An alias for shared pointer to an instance of this class. More...
 
- Public Types inherited from System::Object
typedef SmartPtr< Objectptr
 Alias for smart pointer type. More...
 
typedef System::Details::SharedMembersType shared_members_type
 structure to keep list of shared pointers contained in object. More...
 

Public Member Functions

String get_Name () const
 Returns the qualified name of the current node. More...
 
String get_LocalName () const
 Returns the local name of the current node. More...
 
String get_Prefix () const
 Returns the prefix of the current node. More...
 
String get_NamespaceURI () const
 Returns the namespace URI of the current node. More...
 
String get_Value () const override
 Returns the value of the current node. More...
 
String get_InnerText () const
 Returns the value of the current node. More...
 
String get_InnerXml () const
 Returns a string containing all the content of the current node, including the markup, but excluding start and end tags. More...
 
String get_OuterXml () const
 Returns a string containing all the content of the current node, including the markup, and including start and end tags. More...
 
bool get_HasChildren () const
 Determines if the current node has any child nodes. More...
 
bool get_HasAttributes () const
 Determines if the current node has any attributes. More...
 
bool get_CanEdit () const
 
XPathNodeType get_NodeType () const
 Returns the type of the current node. More...
 
int get_ValueAsInt () const override
 Returns the current node's value as a 32-bit integer. More...
 
System::DateTime get_ValueAsDateTime () const override
 Returns the current node's value as an instance of DateTime object. More...
 
double get_ValueAsDouble () const override
 Returns the current node's value as a double-precision floating point number.|. More...
 
int64_t get_ValueAsLong () const override
 Returns the current node's value as a 64-bit integer. More...
 
virtual SharedPtr< XmlNameTableget_NameTable () const
 Returns the name tabel used by the current object. More...
 
bool MoveTo (const XPathNavigator::Ptr &other)
 
bool MoveToFirst ()
 
bool MoveToFirstChild ()
 
void MoveToRoot ()
 
bool MoveToNext ()
 
bool MoveToPrevious ()
 
bool MoveToParent ()
 
bool MoveToAttribute (const String &localName, const String &namespaceURI)
 
bool MoveToFirstAttribute ()
 
bool MoveToNextAttribute ()
 
String GetAttribute (const String &localName, const String &namespaceURI) const
 
SharedPtr< ObjectEvaluate (const SharedPtr< XPathExpression > &expr)
 
SharedPtr< XPathNodeIteratorSelect (const String &xpath)
 
SharedPtr< XPathNodeIteratorSelect (const String &xpath, const SharedPtr< System::Xml::XmlNamespaceManager > &ns)
 
SharedPtr< XPathNodeIteratorSelect (const SharedPtr< XPathExpression > &expr)
 
XPathNavigator::Ptr SelectSingleNode (const String &xpath)
 
XPathNavigator::Ptr SelectSingleNode (const String &xpath, const SharedPtr< System::Xml::XmlNamespaceManager > &ns)
 
XPathNavigator::Ptr SelectSingleNode (const SharedPtr< XPathExpression > &expr)
 
SharedPtr< XPathNodeIteratorSelectChildren (XPathNodeType type)
 
SharedPtr< XPathNodeIteratorSelectChildren (const String &name, const String &namespaceURI)
 
SharedPtr< XPathExpressionCompile (const String &xpath) const
 
bool Matches (const String &xpath) const
 
bool Matches (const SharedPtr< XPathExpression > &xpath) const
 
XPathNavigator::Ptr CreateNavigator () override
 Returns a copy of the current XPathNavigator object. More...
 
const SharedPtr< XPathDocument > & GetDocument ()
 Returns an XPathDocument object associated with the current XPathNavigator object. More...
 
xmlXPathContext * native_ctx () const
 Returns a pointer to the underlying libxml2 xmlXPathContext object used by the current object. More...
 
- Public Member Functions inherited from System::Object
 Object ()
 Creates object. Initializes all internal data structures. More...
 
virtual ~Object ()
 Destroys object. Frees all internal data structures. More...
 
 Object (Object const &x)
 Copy constructor. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
Objectoperator= (Object const &x)
 Assignment operator. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
ObjectSharedRefAdded ()
 Increments shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int SharedRefRemovedSafe ()
 Decrements and returns shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int RemovedSharedRefs (int count)
 Decreases shared reference count by specified value. More...
 
Detail::SmartPtrCounter * WeakRefAdded ()
 Increments weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
void WeakRefRemoved ()
 Decrements weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
Detail::SmartPtrCounter * GetCounter ()
 Gets reference counter data structure associated with the object. More...
 
int SharedCount () const
 Gets current value of shared refernce counter. More...
 
void Lock ()
 Implements C# lock() statement locking. Call directly or use LockContext sentry object. More...
 
void Unlock ()
 Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More...
 
virtual bool Equals (ptr obj)
 Compares objects using C# Object.Equals semantics. More...
 
virtual int GetHashCode () const
 Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More...
 
virtual String ToString () ASPOSE_CONST
 Analog of C# Object.ToString() method. Enables converting custom objects to string. More...
 
virtual ptr MemberwiseClone () const
 Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More...
 
virtual const TypeInfoGetType () const
 Gets actual type of object. Analog of C# System.Object.GetType() call. More...
 
virtual bool Is (const TypeInfo &targetType) const
 Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More...
 
virtual void SetTemplateWeakPtr (unsigned int argument)
 Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More...
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 

Additional Inherited Members

- Static Public Member Functions inherited from System::Object
static bool ReferenceEquals (ptr const &objA, ptr const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, T const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, std::nullptr_t)
 Reference-compares value type object with nullptr. More...
 
template<typename T1 , typename T2 >
static std::enable_if< IsSmartPtr< T1 >::value &&IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares reference type objects in C# style. More...
 
template<typename T1 , typename T2 >
static std::enable_if<!IsSmartPtr< T1 >::value &&!IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares value type objects in C# style. More...
 
static const TypeInfoType ()
 Impleemnts C# typeof(System.Object) construct. More...
 
template<>
bool Equals (float const &objA, float const &objB)
 
template<>
bool Equals (double const &objA, double const &objB)
 

Detailed Description

Allows navigating and editing XML data. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

Member Typedef Documentation

◆ Ptr

An alias for shared pointer to an instance of this class.

Member Function Documentation

◆ Compile()

SharedPtr<XPathExpression> System::Xml::XPath::XPathNavigator::Compile ( const String xpath) const

Constructs an XPathExpression object that represents the specifed XPath expression.

Parameters
xpathThe string representation of an XPath expression
Returns
An XPathExpression object that represents xpath expression

◆ CreateNavigator()

XPathNavigator::Ptr System::Xml::XPath::XPathNavigator::CreateNavigator ( )
overridevirtual

Returns a copy of the current XPathNavigator object.

Implements System::Xml::XPath::IXPathNavigable.

◆ Evaluate()

SharedPtr<Object> System::Xml::XPath::XPathNavigator::Evaluate ( const SharedPtr< XPathExpression > &  expr)

Evaluate the XPath expression.

Parameters
exprAn XPath expression
Returns
The result of the expression

◆ get_CanEdit()

bool System::Xml::XPath::XPathNavigator::get_CanEdit ( ) const
inline

Determines if the XPathNavigator object can edit the underlying XML data.

Returns
Always false

◆ get_HasAttributes()

bool System::Xml::XPath::XPathNavigator::get_HasAttributes ( ) const

Determines if the current node has any attributes.

◆ get_HasChildren()

bool System::Xml::XPath::XPathNavigator::get_HasChildren ( ) const

Determines if the current node has any child nodes.

◆ get_InnerText()

String System::Xml::XPath::XPathNavigator::get_InnerText ( ) const

Returns the value of the current node.

◆ get_InnerXml()

String System::Xml::XPath::XPathNavigator::get_InnerXml ( ) const

Returns a string containing all the content of the current node, including the markup, but excluding start and end tags.

◆ get_LocalName()

String System::Xml::XPath::XPathNavigator::get_LocalName ( ) const

Returns the local name of the current node.

◆ get_Name()

String System::Xml::XPath::XPathNavigator::get_Name ( ) const

Returns the qualified name of the current node.

◆ get_NamespaceURI()

String System::Xml::XPath::XPathNavigator::get_NamespaceURI ( ) const

Returns the namespace URI of the current node.

◆ get_NameTable()

virtual SharedPtr<XmlNameTable> System::Xml::XPath::XPathNavigator::get_NameTable ( ) const
virtual

Returns the name tabel used by the current object.

◆ get_NodeType()

XPathNodeType System::Xml::XPath::XPathNavigator::get_NodeType ( ) const

Returns the type of the current node.

◆ get_OuterXml()

String System::Xml::XPath::XPathNavigator::get_OuterXml ( ) const

Returns a string containing all the content of the current node, including the markup, and including start and end tags.

◆ get_Prefix()

String System::Xml::XPath::XPathNavigator::get_Prefix ( ) const

Returns the prefix of the current node.

◆ get_Value()

String System::Xml::XPath::XPathNavigator::get_Value ( ) const
overridevirtual

Returns the value of the current node.

Implements System::Xml::XPath::XPathItem.

◆ get_ValueAsDateTime()

System::DateTime System::Xml::XPath::XPathNavigator::get_ValueAsDateTime ( ) const
overridevirtual

Returns the current node's value as an instance of DateTime object.

Implements System::Xml::XPath::XPathItem.

◆ get_ValueAsDouble()

double System::Xml::XPath::XPathNavigator::get_ValueAsDouble ( ) const
overridevirtual

Returns the current node's value as a double-precision floating point number.|.

Implements System::Xml::XPath::XPathItem.

◆ get_ValueAsInt()

int System::Xml::XPath::XPathNavigator::get_ValueAsInt ( ) const
overridevirtual

Returns the current node's value as a 32-bit integer.

Implements System::Xml::XPath::XPathItem.

◆ get_ValueAsLong()

int64_t System::Xml::XPath::XPathNavigator::get_ValueAsLong ( ) const
overridevirtual

Returns the current node's value as a 64-bit integer.

Implements System::Xml::XPath::XPathItem.

◆ GetAttribute()

String System::Xml::XPath::XPathNavigator::GetAttribute ( const String localName,
const String namespaceURI 
) const

Returns the value of the current node's attribute whose local name and namespace URI match the specified values.

Parameters
localNameThe local name of the attribute
namespaceURIThe namespace URI of the attribute
Returns
The value of the attribute with local name matches localName and namespace URI matches namespaceURI

◆ GetDocument()

const SharedPtr<XPathDocument>& System::Xml::XPath::XPathNavigator::GetDocument ( )
inline

Returns an XPathDocument object associated with the current XPathNavigator object.

◆ Matches() [1/2]

bool System::Xml::XPath::XPathNavigator::Matches ( const SharedPtr< XPathExpression > &  xpath) const

Determines if the current node matches the specified XPath expression.

Parameters
xpathThe XPath expression
Returns
True if the current node matches xpath, otherwise - false

◆ Matches() [2/2]

bool System::Xml::XPath::XPathNavigator::Matches ( const String xpath) const

Determines if the current node matches the specified XPath expression represented as string.

Parameters
xpathThe XPath expression represeted as string
Returns
True if the current node matches xpath, otherwise - false

◆ MoveTo()

bool System::Xml::XPath::XPathNavigator::MoveTo ( const XPathNavigator::Ptr other)

Moves the the current XPathNavigator to the position equal to that of the specified XPathNavigator.

Parameters
otherThe reference XPathNavigator
Returns
True if the operation succeeded, otherwise - false

◆ MoveToAttribute()

bool System::Xml::XPath::XPathNavigator::MoveToAttribute ( const String localName,
const String namespaceURI 
)

Moves the the current XPathNavigator to the attribute of the current node whose local name and namespace URI match the specified values.

Parameters
localNameThe local name of the attribute
namespaceURIThe namespace URI of the attribute
Returns
True if the operation succeeded, otherwise - false

◆ MoveToFirst()

bool System::Xml::XPath::XPathNavigator::MoveToFirst ( )

Moves the the current XPathNavigator to the first sibling of the current node.

Returns
True if the operation succeeded, otherwise - false

◆ MoveToFirstAttribute()

bool System::Xml::XPath::XPathNavigator::MoveToFirstAttribute ( )

Moves the the current XPathNavigator to the first attribute of the current node.

Returns
True if the operation succeeded, otherwise - false

◆ MoveToFirstChild()

bool System::Xml::XPath::XPathNavigator::MoveToFirstChild ( )

Moves the the current XPathNavigator to the first child node of the current node.

Returns
True if the operation succeeded, otherwise - false

◆ MoveToNext()

bool System::Xml::XPath::XPathNavigator::MoveToNext ( )

Moves the the current XPathNavigator to the next sibling node of the current node.

Returns
True if the operation succeeded, otherwise - false

◆ MoveToNextAttribute()

bool System::Xml::XPath::XPathNavigator::MoveToNextAttribute ( )

Moves the the current XPathNavigator to the next attribute of the current node.

Returns
True if the operation succeeded, otherwise - false

◆ MoveToParent()

bool System::Xml::XPath::XPathNavigator::MoveToParent ( )

Moves the the current XPathNavigator to the parent node of the current node.

Returns
True if the operation succeeded, otherwise - false

◆ MoveToPrevious()

bool System::Xml::XPath::XPathNavigator::MoveToPrevious ( )

Moves the the current XPathNavigator to the previous child node of the current node.

Returns
True if the operation succeeded, otherwise - false

◆ MoveToRoot()

void System::Xml::XPath::XPathNavigator::MoveToRoot ( )

Moves the the current XPathNavigator to the root node of the current node.

Returns
True if the operation succeeded, otherwise - false

◆ native_ctx()

xmlXPathContext* System::Xml::XPath::XPathNavigator::native_ctx ( ) const
inline

Returns a pointer to the underlying libxml2 xmlXPathContext object used by the current object.

◆ Select() [1/3]

SharedPtr<XPathNodeIterator> System::Xml::XPath::XPathNavigator::Select ( const SharedPtr< XPathExpression > &  expr)

Select a set of nodes using the specified XPath expression represented as XPathExpression object.

Parameters
exprAn XPath expression
Returns
An iterator pointing to the selected nodes set

◆ Select() [2/3]

SharedPtr<XPathNodeIterator> System::Xml::XPath::XPathNavigator::Select ( const String xpath)

Select a set of nodes using the specified XPath expression.

Parameters
xpathA string representation of XPath expression
Returns
An iterator pointing to the selected nodes set

◆ Select() [3/3]

SharedPtr<XPathNodeIterator> System::Xml::XPath::XPathNavigator::Select ( const String xpath,
const SharedPtr< System::Xml::XmlNamespaceManager > &  ns 
)

Select a set of nodes using the specified XPath expression.

Parameters
xpathXPath expression
nsNOT USED, must be null
Returns
An iterator pointing to the selected nodes set

◆ SelectChildren() [1/2]

SharedPtr<XPathNodeIterator> System::Xml::XPath::XPathNavigator::SelectChildren ( const String name,
const String namespaceURI 
)

NOT IMPLEMENTED

Exceptions
NotImplementedExceptionAlways

◆ SelectChildren() [2/2]

SharedPtr<XPathNodeIterator> System::Xml::XPath::XPathNavigator::SelectChildren ( XPathNodeType  type)

NOT IMPLEMENTED

Exceptions
NotImplementedExceptionAlways

◆ SelectSingleNode() [1/3]

XPathNavigator::Ptr System::Xml::XPath::XPathNavigator::SelectSingleNode ( const SharedPtr< XPathExpression > &  expr)

Selecs the first node in the current XPathNavigator using the specified XPath expression.

Parameters
exprA string representation of XPath expression
Returns
The selected node

◆ SelectSingleNode() [2/3]

XPathNavigator::Ptr System::Xml::XPath::XPathNavigator::SelectSingleNode ( const String xpath)

Selecs the first node in the current XPathNavigator using the specified XPath expression.

Parameters
xpathA string representation of XPath expression
Returns
The selected node

◆ SelectSingleNode() [3/3]

XPathNavigator::Ptr System::Xml::XPath::XPathNavigator::SelectSingleNode ( const String xpath,
const SharedPtr< System::Xml::XmlNamespaceManager > &  ns 
)

Selecs the first node in the current XPathNavigator using the specified XPath expression.

Parameters
xpathA string representation of XPath expression
nsNamespace manager to use
Returns
The selected node