Asposecpplib

Represents an XML node. 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. More...

Inherits System::Xml::XPath::IXPathNavigable.

Inherited by System::Xml::XmlAttribute, System::Xml::XmlCharacterData, System::Xml::XmlDeclaration, System::Xml::XmlDocument, System::Xml::XmlDocumentFragment, System::Xml::XmlDocumentType, System::Xml::XmlElement, and System::Xml::XmlProcessingInstruction.

Public Types

typedef SharedPtr< XmlNodePtr
 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...
 

Public Member Functions

virtual String get_BaseURI () const
 NOT IMPLEMENTED. More...
 
virtual XmlNodeType get_NodeType () const
 Returns the type of the XML node represented by the current object. More...
 
virtual String get_Name () const =0
 Returns the qualified name of the XML node represented by the current object. More...
 
virtual String get_Value () const
 Returns the value of the XML node represented by the current object. More...
 
virtual String get_LocalName () const
 Returns the local name of the XML node represented by the current object. More...
 
virtual String get_Prefix () const
 Returns the prefix of the XML node represented by the current object. More...
 
virtual String get_NamespaceURI () const
 Returns the namespace URI of the XML node represented by the current object. More...
 
virtual String get_InnerText () const
 Returns the concatenated values of the XML node represented by the current object and all its child nodes. More...
 
virtual String get_InnerXml () const
 Returns the XML markup representing the child nodes of the XML node represented by the current object. More...
 
virtual String get_OuterXml () const
 Returns the XML markup representing the XML node represented by the current object and all its the child nodes. More...
 
virtual bool get_HasChildNodes () const
 Determines if the XML node represented by the current object has child nodes. More...
 
virtual XmlNode::Ptr get_FirstChild () const
 Returns the first child of the node represented by the current object. More...
 
virtual XmlNode::Ptr get_LastChild () const
 Returns the last child of the node represented by the current object. More...
 
virtual XmlNode::Ptr get_NextSibling () const
 Returns the next sibling of the node represented by the current object. More...
 
virtual XmlNode::Ptr get_PreviousSibling () const
 Returns the previous sibling of the node represented by the current object. More...
 
virtual XmlNode::Ptr get_ParentNode () const
 Returns the parent node of the node represented by the current object. More...
 
virtual SharedPtr< XmlDocumentget_OwnerDocument () const
 Returns a shared pointer to an XmlDocument object representing an XML document node to which the node represented by the current object belongs. More...
 
virtual SharedPtr< XmlAttributeCollectionget_Attributes ()
 Returns an XmlAttributeCollection object containing all attributes of the XML node represented by the current object. More...
 
virtual SharedPtr< XmlNodeListget_ChildNodes ()
 Returns an XmlNodeList object containing all child nodes of the XML node represented by the current object. More...
 
virtual SharedPtr< Schema::IXmlSchemaInfoget_SchemaInfo ()
 
virtual void set_Value (String value)
 Sets the value of the node represented by the current object. More...
 
virtual void set_Prefix (String)
 Sets the prefix of the XML node represented by the current object. More...
 
virtual void set_InnerText (String value)
 Sets the XML node's inner text by replacing all the child nodes (if any) with the contents of the given string. More...
 
virtual void set_InnerXml (String value)
 Replaces the XML node's inner XML markup with the contents of the specified string. More...
 
virtual SharedPtr< XmlElementidx_get (String) const
 Returns a shared pointer to the newly constructed XmlElement object. More...
 
virtual SharedPtr< XmlElementoperator[] (String name) const
 Returns a shared pointer to the XmlElement object representing the child element of the XML node represented by the current object with the specified qualified name. More...
 
virtual XmlNode::Ptr AppendChild (XmlNode::Ptr child)
 Adds the specified XML node at the end of the list of children of the XML node represented by the current object. More...
 
virtual XmlNode::Ptr PrependChild (XmlNode::Ptr new_child)
 Adds the specified XML node at the beginning of the list of children of the XML node represented by the current object. More...
 
virtual XmlNode::Ptr ReplaceChild (XmlNode::Ptr new_child, XmlNode::Ptr old_child)
 Replaces the specified the specified child node of the node reprsented by the current object with another one. More...
 
virtual XmlNode::Ptr InsertAfter (XmlNode::Ptr new_child, XmlNode::Ptr ref_child)
 Adds the specified XML node to the list of children of the XML node represented by the current object at the position next to the position of the specified reference child node. More...
 
virtual XmlNode::Ptr InsertBefore (XmlNode::Ptr new_child, XmlNode::Ptr ref_child)
 Adds the specified XML node to the list of children of the XML document represented by the current object at the position prior to the position of the specified reference child node. More...
 
virtual void RemoveAll ()
 Removes all child nodes of the XML node reprsented by the current object. More...
 
virtual XmlNode::Ptr RemoveChild (XmlNode::Ptr child)
 Removes the specified child node of the XML node represented by the current object. More...
 
virtual String GetPrefixOfNamespace (const String &namespace_uri)
 Looks up the closest xmlns declaration for the specified namespace URI that is in scope for the XML node represented by the current object and returns the prefix defined in that declaration. More...
 
virtual String GetNamespaceOfPrefix (const String &prefix)
 Looks up the closest xmlns declaration for the specified prefix that is in scope for the XML node represented by the current object and returns the namespace URI defined in that declaration. More...
 
virtual void WriteContentTo (SharedPtr< XmlWriter > writer)
 Saves all children of the XML node represented by the current object to the specified XmlWriter object. More...
 
virtual void WriteTo (SharedPtr< XmlWriter > writer)=0
 Saves the XML node represented by the current object to the specified XmlWriter object. More...
 
virtual SharedPtr< XmlNodeListSelectNodes (String xPath)
 Returns a list of XML nodes that match the specfied XPath expression. More...
 
virtual SharedPtr< XmlNodeListSelectNodes (String xPath, SharedPtr< XmlNamespaceManager > nsMgr)
 Returns a list of XML nodes that match the specfied XPath expression; any prefixes encountered in xpath expression are resolved using the specified namespace manager. More...
 
virtual XmlNode::Ptr SelectSingleNode (String xPath)
 Returns the first XML node that match the specfied XPath expression. More...
 
virtual XmlNode::Ptr SelectSingleNode (String xPath, SharedPtr< XmlNamespaceManager > nsMgr)
 Returns the first XML node that match the specfied XPath expression; any prefixes encountered in xpath expression are resolved using the specified namespace manager. More...
 
SharedPtr< System::Collections::Generic::IEnumerator< XmlNode::Ptr > > GetEnumerator ()
 Returns an enumerator that points to the collection containing child nodes of the node represented by the current object. More...
 
virtual XmlNode::Ptr CloneNode (bool deep)=0
 Returns a copy of the node represented by the current object. More...
 
XmlNode::Ptr Clone ()
 Returns a copy of the node represented by the current object. The subtree under the node is also copied. This method is equivallent to calling CloneNode(true). More...
 
xmlNode * native_node ()
 Returns a pointer to the underlying libxml2 xmlNode object. More...
 
virtual SharedPtr< XPath::XPathNavigatorCreateNavigator () override
 Creates an instance of XPath::XPathNavigator class for navigating an XML document represented by the current object. More...
 
virtual void Normalize ()
 Puts all XmlText nodes in the full depth of the sub-tree underneath this XmlNode into a "normal" form where only markup (that is, tags, comments, processing instructions, CDATA sections, and entity references) separates XmlText nodes, that is, there are no adjacent XmlText nodes. Not implemented. 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 reference 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 int32_t GetHashCode () const
 Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More...
 
virtual String ToString () 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 (uint32_t argument)
 Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More...
 
virtual bool FastCast (const Details::FastRttiBase &helper, void **out_ptr) const
 For internal purposes only. More...
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 Specialization of Object::ReferenceEquals for case of string and nullptr. More...
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 Specialization of Object::ReferenceEquals for case of strings. More...
 

Protected Types

enum  insert_where { insert_begin , insert_before , insert_after , insert_end }
 Specifies the position in the child nodes list where to insert a node during insertion operation. More...
 

Protected Member Functions

 ~XmlNode () override
 Destructor. More...
 
 XmlNode (xmlNode *node)
 Constructs an instance of XmlNode class that represents the specified XML node. More...
 
 XmlNode (xmlNode *node, const SharedPtr< XmlDocument > &owner)
 Constructs an instance of XmlNode class that represents the specified XML node and belongs to the specified owner XML document. More...
 
 XmlNode (const SharedPtr< XmlDocument > &owner)
 Constructs an instance of XmlNode class that belongs to the specified document. The underlying libxml2 xmlNode object is not created. This constructor is intended to be used by XmlDeclaration class only. More...
 
SharedPtr< XmlElementfind_child_xml_element_by_name (const String &name, const SharedPtr< XmlDocument > &owner_doc) const
 Looks up an XML element with the specified name which is a descandant of the specified XML document. More...
 
uint64_t child_elements_count () const
 Returns the number of children of all levels of the XML node represented by the current object. More...
 
bool can_be_append (XmlNodeType type) const
 Determines if an XML node of the specified type can be added as a child node to the XML node represented by the current object. More...
 
insert_where noralize_place (xmlNode *ref_child, insert_where place)
 Normalizes the indicator of the position where the node is to be inserted by making it consistent with the reference child value and presence of nodes in the list of children of the current node. More...
 
void insert_verified_child_node (const XmlNode::Ptr &child, xmlNode *ref_child, insert_where place)
 Inserts the specified node in the list of children of the node represented by the current object at the specified position. More...
 
void insert_document_fragment (const XmlNode::Ptr &fragment, xmlNode *ref_child, insert_where place)
 Inserts the nodes of the specified document fragment in the list of children of the node represented by the current object at the specified position. More...
 
void reassign_native (xmlNode *node)
 Replaces the node reprsented by the current object with the specified one. More...
 
xmlAttr * get_attribute_by_qname (const String &qname) const
 Returns an attribute with the specified qualified name. More...
 
xmlNs * find_ns (const std::string &prefix) const
 Returns a namespace associated with the specified prefix. More...
 
void set_Value (const String &text, bool riseEvent)
 Sets the value of the XML node represented by the current object and triggers corresponding events. More...
 

Static Protected Member Functions

static xmlNs * make_new_ns (xmlNodePtr parent, const std::string &prefix, const std::string &uri="")
 Creates a new namespace. More...
 
static int parse_qname (const System::String &qname, std::string &prefix, std::string &local_name)
 Parses the XML node's qualified name by breaking it into a prefix and a local name. More...
 
static int csharp_nodetype_to_libxml (XmlNodeType type)
 Converts the specified XML node type represented as an XmlNodeType value to equivalent value defied by libxml2 library. More...
 
static XmlNode::Ptr create_wrapper (xmlNode *node, const SharedPtr< XmlDocument > &owner, const std::shared_ptr< xmlDoc > &doc=nullptr)
 Creates an instance of XmlNode class that represents the specified node and belongs to the specified document. More...
 
static SharedPtr< XmlAttributecreate_wrapper_attr (xmlAttr *attr, const SharedPtr< XmlDocument > &owner)
 Creates an instance of XmlAttribute class that represents the specified attribute and belongs to the specified document. More...
 
static SharedPtr< XmlAttributecreate_wrapper_attr (xmlNs *ns, const SharedPtr< XmlDocument > &owner, const SharedPtr< XmlElement > &element)
 Creates an instance of XmlAttribute class that represents an xmlns attribute and belongs to the specified document. More...
 
static SharedPtr< XmlAttributecreate_wrapper_attr (const String &prefix, const String &local_name, const String &namespace_uri, const SharedPtr< XmlDocument > &owner)
 Constructs an XmlAttribute object that represents a detached XML attribute belonging to the specified owner. More...
 
template<typename T >
static SharedPtr< T > create_aliasing_wrapper (const SharedPtr< T > &ptr, const SharedPtr< XmlDocument > &document)
 Creates a shared pointer for pointee to an XML-node with aliasing constructor to own a document. More...
 

Protected Attributes

std::shared_ptr< xmlDoc > m_doc
 XML document to which the XML node represented by the current object belongs. More...
 
xmlNode * m_node
 Pointer to underlying libxml2 xmlNode object. More...
 
WeakPtr< XmlDocumentm_owner
 Weak poiter to the owning XML document. More...
 

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 ()
 Implements C# typeof(System.Object) construct. More...
 
template<>
bool Equals (float const &objA, float const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 
template<>
bool Equals (double const &objA, double const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 

Detailed Description

Represents an XML node. 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 Enumeration Documentation

◆ insert_where

Specifies the position in the child nodes list where to insert a node during insertion operation.

Enumerator
insert_begin 

Insert before the first node.

insert_before 

Insert at the position prior to the position of the reference node.

insert_after 

Insert at the position next to the position of the reference node.

insert_end 

Insert after the last element.

Constructor & Destructor Documentation

◆ ~XmlNode()

System::Xml::XmlNode::~XmlNode ( )
overrideprotected

Destructor.

◆ XmlNode() [1/3]

System::Xml::XmlNode::XmlNode ( xmlNode *  node)
protected

Constructs an instance of XmlNode class that represents the specified XML node.

Parameters
nodeThe node to be represented by the object being constructed

◆ XmlNode() [2/3]

System::Xml::XmlNode::XmlNode ( xmlNode *  node,
const SharedPtr< XmlDocument > &  owner 
)
protected

Constructs an instance of XmlNode class that represents the specified XML node and belongs to the specified owner XML document.

Parameters
nodeThe node to be represented by the object being constructed
ownerThe XML document to which the XML node represented by the object being constructed should belong.

◆ XmlNode() [3/3]

System::Xml::XmlNode::XmlNode ( const SharedPtr< XmlDocument > &  owner)
protected

Constructs an instance of XmlNode class that belongs to the specified document. The underlying libxml2 xmlNode object is not created. This constructor is intended to be used by XmlDeclaration class only.

Parameters
ownerAn XmlDocument object representing the owner document of the node being constructed

Member Function Documentation

◆ AppendChild()

virtual XmlNode::Ptr System::Xml::XmlNode::AppendChild ( XmlNode::Ptr  child)
virtual

Adds the specified XML node at the end of the list of children of the XML node represented by the current object.

Parameters
childThe XML node to add
Returns
A shared pointer to the specified XmlNode object child

Reimplemented in System::Xml::XmlElement, System::Xml::XmlDocumentFragment, and System::Xml::XmlDocument.

◆ can_be_append()

bool System::Xml::XmlNode::can_be_append ( XmlNodeType  type) const
protected

Determines if an XML node of the specified type can be added as a child node to the XML node represented by the current object.

Parameters
typeThe type to check
Returns
True if the XML node of type type can be a child node of the node represented by the current object, otherwise - false

◆ child_elements_count()

uint64_t System::Xml::XmlNode::child_elements_count ( ) const
protected

Returns the number of children of all levels of the XML node represented by the current object.

◆ Clone()

XmlNode::Ptr System::Xml::XmlNode::Clone ( )
inline

Returns a copy of the node represented by the current object. The subtree under the node is also copied. This method is equivallent to calling CloneNode(true).

◆ CloneNode()

virtual XmlNode::Ptr System::Xml::XmlNode::CloneNode ( bool  deep)
pure virtual

Returns a copy of the node represented by the current object.

Parameters
deepSpecifies whether to clone the subtree under the node represented by the current object (true) or only the node itself (false)
Returns
A shared pointer to an XmlNode object that is a copy of the current object

Implemented in System::Xml::XmlProcessingInstruction, System::Xml::XmlElement, System::Xml::XmlDocumentType, System::Xml::XmlDocumentFragment, System::Xml::XmlDocument, System::Xml::XmlDeclaration, System::Xml::XmlCharacterData, and System::Xml::XmlAttribute.

◆ create_aliasing_wrapper()

template<typename T >
static SharedPtr<T> System::Xml::XmlNode::create_aliasing_wrapper ( const SharedPtr< T > &  ptr,
const SharedPtr< XmlDocument > &  document 
)
inlinestaticprotected

Creates a shared pointer for pointee to an XML-node with aliasing constructor to own a document.

◆ create_wrapper()

static XmlNode::Ptr System::Xml::XmlNode::create_wrapper ( xmlNode *  node,
const SharedPtr< XmlDocument > &  owner,
const std::shared_ptr< xmlDoc > &  doc = nullptr 
)
staticprotected

Creates an instance of XmlNode class that represents the specified node and belongs to the specified document.

Parameters
nodeThe XML node to be represented by the XmlNode object being created
ownerThe XmlDocument object to which the created XmlNode object should belong
docThe xmlDoc object shared among all XmlNodes
Returns
A shared pointer to a newly created XmlNode object that represents node node and belongs to owner document

◆ create_wrapper_attr() [1/3]

static SharedPtr<XmlAttribute> System::Xml::XmlNode::create_wrapper_attr ( const String prefix,
const String local_name,
const String namespace_uri,
const SharedPtr< XmlDocument > &  owner 
)
staticprotected

Constructs an XmlAttribute object that represents a detached XML attribute belonging to the specified owner.

Parameters
prefixThe namespace prefix of the attribute
local_nameThe local name of the attribute
namespace_uriThe namespace URI associated with the attribute
ownerThe owner document of the attribute
Returns
A shared pointer to the created XmlAttribute object

◆ create_wrapper_attr() [2/3]

static SharedPtr<XmlAttribute> System::Xml::XmlNode::create_wrapper_attr ( xmlAttr *  attr,
const SharedPtr< XmlDocument > &  owner 
)
staticprotected

Creates an instance of XmlAttribute class that represents the specified attribute and belongs to the specified document.

Parameters
attrThe XML attribute to be represented by the XmlAttribute object being created
ownerThe XmlDocument object to which the created XmlAttribute object should belong
Returns
A shared pointer to a newly created XmlAttribute object that represents attr attribute and belongs to owner document

◆ create_wrapper_attr() [3/3]

static SharedPtr<XmlAttribute> System::Xml::XmlNode::create_wrapper_attr ( xmlNs *  ns,
const SharedPtr< XmlDocument > &  owner,
const SharedPtr< XmlElement > &  element 
)
staticprotected

Creates an instance of XmlAttribute class that represents an xmlns attribute and belongs to the specified document.

Parameters
nsThe namespace that the attribute represented by the current object should declare
ownerThe XmlDocument object to which the created XmlAttribute object should belong
elementThe XmlElement object to which the created XmlAttribute object should belong
Returns
A shared pointer to a newly created XmlAttribute object that represents an xmlns attribute that declares a namespace ns and belongs to owner document

◆ CreateNavigator()

virtual SharedPtr<XPath::XPathNavigator> System::Xml::XmlNode::CreateNavigator ( )
overridevirtual

Creates an instance of XPath::XPathNavigator class for navigating an XML document represented by the current object.

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

Reimplemented in System::Xml::XmlDocument.

◆ csharp_nodetype_to_libxml()

static int System::Xml::XmlNode::csharp_nodetype_to_libxml ( XmlNodeType  type)
staticprotected

Converts the specified XML node type represented as an XmlNodeType value to equivalent value defied by libxml2 library.

Parameters
typeAn XmlNodeType value to convert
Returns
A value representing a node type defined by libxml2 library equivalent to type value

◆ find_child_xml_element_by_name()

SharedPtr<XmlElement> System::Xml::XmlNode::find_child_xml_element_by_name ( const String name,
const SharedPtr< XmlDocument > &  owner_doc 
) const
protected

Looks up an XML element with the specified name which is a descandant of the specified XML document.

Parameters
nameThe qualified name of the XML element to find
owner_docThe XML document
Returns
A shared pointer to an XmlElement object representing the found XML element if the element has been found, otherwise - null-pointer

◆ find_ns()

xmlNs* System::Xml::XmlNode::find_ns ( const std::string &  prefix) const
protected

Returns a namespace associated with the specified prefix.

Parameters
prefixA namespace prefix
Returns
A pointer to a libxml2 xmlNs object representing a namespace associated with the specified prefix or NULL if such namespace has not been found.

◆ get_attribute_by_qname()

xmlAttr* System::Xml::XmlNode::get_attribute_by_qname ( const String qname) const
protected

Returns an attribute with the specified qualified name.

Parameters
qnameThe attribute's qualified name
Returns
A pointer to a libxml2 xmlAttr object representing an attribute with the specified name or NULL if the attribute has not been found

◆ get_Attributes()

virtual SharedPtr<XmlAttributeCollection> System::Xml::XmlNode::get_Attributes ( )
virtual

Returns an XmlAttributeCollection object containing all attributes of the XML node represented by the current object.

Reimplemented in System::Xml::XmlElement.

◆ get_BaseURI()

virtual String System::Xml::XmlNode::get_BaseURI ( ) const
virtual

NOT IMPLEMENTED.

Exceptions
NotImplementedException

Reimplemented in System::Xml::XmlDocument.

◆ get_ChildNodes()

virtual SharedPtr<XmlNodeList> System::Xml::XmlNode::get_ChildNodes ( )
virtual

Returns an XmlNodeList object containing all child nodes of the XML node represented by the current object.

◆ get_FirstChild()

virtual XmlNode::Ptr System::Xml::XmlNode::get_FirstChild ( ) const
virtual

Returns the first child of the node represented by the current object.

Reimplemented in System::Xml::XmlDocument, System::Xml::XmlDeclaration, and System::Xml::XmlAttribute.

◆ get_HasChildNodes()

virtual bool System::Xml::XmlNode::get_HasChildNodes ( ) const
virtual

Determines if the XML node represented by the current object has child nodes.

Returns
True if the XML node represented by the current object has at least one child node, otherwise - false.

Reimplemented in System::Xml::XmlDeclaration, and System::Xml::XmlAttribute.

◆ get_InnerText()

virtual String System::Xml::XmlNode::get_InnerText ( ) const
virtual

Returns the concatenated values of the XML node represented by the current object and all its child nodes.

Reimplemented in System::Xml::XmlProcessingInstruction, System::Xml::XmlDeclaration, System::Xml::XmlCDataSection, and System::Xml::XmlAttribute.

◆ get_InnerXml()

virtual String System::Xml::XmlNode::get_InnerXml ( ) const
virtual

Returns the XML markup representing the child nodes of the XML node represented by the current object.

Reimplemented in System::Xml::XmlDeclaration, and System::Xml::XmlAttribute.

◆ get_LastChild()

virtual XmlNode::Ptr System::Xml::XmlNode::get_LastChild ( ) const
virtual

Returns the last child of the node represented by the current object.

Reimplemented in System::Xml::XmlDocument, System::Xml::XmlDeclaration, and System::Xml::XmlAttribute.

◆ get_LocalName()

virtual String System::Xml::XmlNode::get_LocalName ( ) const
virtual

Returns the local name of the XML node represented by the current object.

Reimplemented in System::Xml::XmlElement, System::Xml::XmlDeclaration, and System::Xml::XmlAttribute.

◆ get_Name()

◆ get_NamespaceURI()

virtual String System::Xml::XmlNode::get_NamespaceURI ( ) const
virtual

Returns the namespace URI of the XML node represented by the current object.

Reimplemented in System::Xml::XmlElement, System::Xml::XmlDeclaration, and System::Xml::XmlAttribute.

◆ get_NextSibling()

virtual XmlNode::Ptr System::Xml::XmlNode::get_NextSibling ( ) const
virtual

Returns the next sibling of the node represented by the current object.

Reimplemented in System::Xml::XmlDocument, System::Xml::XmlDeclaration, and System::Xml::XmlAttribute.

◆ get_NodeType()

virtual XmlNodeType System::Xml::XmlNode::get_NodeType ( ) const
virtual

Returns the type of the XML node represented by the current object.

Reimplemented in System::Xml::XmlDeclaration, and System::Xml::XmlAttribute.

◆ get_OuterXml()

virtual String System::Xml::XmlNode::get_OuterXml ( ) const
virtual

Returns the XML markup representing the XML node represented by the current object and all its the child nodes.

Reimplemented in System::Xml::XmlDocument, System::Xml::XmlDeclaration, and System::Xml::XmlAttribute.

◆ get_OwnerDocument()

virtual SharedPtr<XmlDocument> System::Xml::XmlNode::get_OwnerDocument ( ) const
virtual

Returns a shared pointer to an XmlDocument object representing an XML document node to which the node represented by the current object belongs.

Reimplemented in System::Xml::XmlDocument.

◆ get_ParentNode()

virtual XmlNode::Ptr System::Xml::XmlNode::get_ParentNode ( ) const
virtual

Returns the parent node of the node represented by the current object.

Reimplemented in System::Xml::XmlDocument, System::Xml::XmlDeclaration, and System::Xml::XmlAttribute.

◆ get_Prefix()

virtual String System::Xml::XmlNode::get_Prefix ( ) const
virtual

Returns the prefix of the XML node represented by the current object.

Reimplemented in System::Xml::XmlElement, System::Xml::XmlDeclaration, and System::Xml::XmlAttribute.

◆ get_PreviousSibling()

virtual XmlNode::Ptr System::Xml::XmlNode::get_PreviousSibling ( ) const
virtual

Returns the previous sibling of the node represented by the current object.

Reimplemented in System::Xml::XmlDocument, System::Xml::XmlDeclaration, and System::Xml::XmlAttribute.

◆ get_SchemaInfo()

virtual SharedPtr<Schema::IXmlSchemaInfo> System::Xml::XmlNode::get_SchemaInfo ( )
virtual

Reimplemented in System::Xml::XmlAttribute.

◆ get_Value()

virtual String System::Xml::XmlNode::get_Value ( ) const
virtual

Returns the value of the XML node represented by the current object.

Reimplemented in System::Xml::XmlElement, System::Xml::XmlDocument, System::Xml::XmlDeclaration, and System::Xml::XmlAttribute.

◆ GetEnumerator()

SharedPtr<System::Collections::Generic::IEnumerator<XmlNode::Ptr> > System::Xml::XmlNode::GetEnumerator ( )

Returns an enumerator that points to the collection containing child nodes of the node represented by the current object.

◆ GetNamespaceOfPrefix()

virtual String System::Xml::XmlNode::GetNamespaceOfPrefix ( const String prefix)
virtual

Looks up the closest xmlns declaration for the specified prefix that is in scope for the XML node represented by the current object and returns the namespace URI defined in that declaration.

Parameters
prefixThe prefix whose namespace URI to find
Returns
The namespace URI associated with the specified prefix

◆ GetPrefixOfNamespace()

virtual String System::Xml::XmlNode::GetPrefixOfNamespace ( const String namespace_uri)
virtual

Looks up the closest xmlns declaration for the specified namespace URI that is in scope for the XML node represented by the current object and returns the prefix defined in that declaration.

Parameters
namespace_uriThe namespace URI whose prefix to find
Returns
The prefix associated with the specified namespace URI

◆ idx_get()

virtual SharedPtr<XmlElement> System::Xml::XmlNode::idx_get ( String  ) const
inlinevirtual

Returns a shared pointer to the newly constructed XmlElement object.

Reimplemented in System::Xml::XmlAttribute, System::Xml::XmlElement, and System::Xml::XmlDocument.

◆ insert_document_fragment()

void System::Xml::XmlNode::insert_document_fragment ( const XmlNode::Ptr fragment,
xmlNode *  ref_child,
insert_where  place 
)
protected

Inserts the nodes of the specified document fragment in the list of children of the node represented by the current object at the specified position.

Parameters
fragmentThe document fragment to insert
ref_childThe reference child node; place specifies the insertion position as relative to the position of ref_child child node
placeSpecified the insertion position relative to the position of ref_child

◆ insert_verified_child_node()

void System::Xml::XmlNode::insert_verified_child_node ( const XmlNode::Ptr child,
xmlNode *  ref_child,
insert_where  place 
)
protected

Inserts the specified node in the list of children of the node represented by the current object at the specified position.

Parameters
childA node to insert
ref_childThe reference child node; place specifies the insertion position as relative to the position of ref_child child node
placeSpecified the insertion position relative to the position of ref_child

◆ InsertAfter()

virtual XmlNode::Ptr System::Xml::XmlNode::InsertAfter ( XmlNode::Ptr  new_child,
XmlNode::Ptr  ref_child 
)
virtual

Adds the specified XML node to the list of children of the XML node represented by the current object at the position next to the position of the specified reference child node.

Parameters
new_childThe XML node to add
ref_childThe reference node indicating the position in the list of children next to which node should be inserted
Returns
A shared pointer to the specified XmlNode object child

Reimplemented in System::Xml::XmlElement, System::Xml::XmlDocumentFragment, and System::Xml::XmlDocument.

◆ InsertBefore()

virtual XmlNode::Ptr System::Xml::XmlNode::InsertBefore ( XmlNode::Ptr  new_child,
XmlNode::Ptr  ref_child 
)
virtual

Adds the specified XML node to the list of children of the XML document represented by the current object at the position prior to the position of the specified reference child node.

Parameters
new_childThe XML node to add
ref_childThe reference node indicating the position in the list of children next to which node should be inserted
Returns
A shared pointer to the specified XmlNode object child

Reimplemented in System::Xml::XmlElement, System::Xml::XmlDocumentFragment, and System::Xml::XmlDocument.

◆ make_new_ns()

static xmlNs* System::Xml::XmlNode::make_new_ns ( xmlNodePtr  parent,
const std::string &  prefix,
const std::string &  uri = "" 
)
staticprotected

Creates a new namespace.

Parameters
parentThe element that carries the namespace
prefixThe prefix to be associated with the namespace; empty string if a default namespace is to be created
uriThe URI for the namespace
Returns
A pointer to libxml2 xmlNs object representing the created namespace or NULL in case of error

◆ native_node()

xmlNode* System::Xml::XmlNode::native_node ( )
inline

Returns a pointer to the underlying libxml2 xmlNode object.

◆ noralize_place()

insert_where System::Xml::XmlNode::noralize_place ( xmlNode *  ref_child,
insert_where  place 
)
protected

Normalizes the indicator of the position where the node is to be inserted by making it consistent with the reference child value and presence of nodes in the list of children of the current node.

Parameters
ref_childThe reference node relative to which the insertion position is specified
placeThe insertion position relative to the position of reference node
Returns
The normalized insrtion position

◆ Normalize()

virtual void System::Xml::XmlNode::Normalize ( )
virtual

Puts all XmlText nodes in the full depth of the sub-tree underneath this XmlNode into a "normal" form where only markup (that is, tags, comments, processing instructions, CDATA sections, and entity references) separates XmlText nodes, that is, there are no adjacent XmlText nodes. Not implemented.

◆ operator[]()

virtual SharedPtr<XmlElement> System::Xml::XmlNode::operator[] ( String  name) const
inlinevirtual

Returns a shared pointer to the XmlElement object representing the child element of the XML node represented by the current object with the specified qualified name.

Parameters
nameThe qualified name of the element to return
Returns
A shared pointer to the XmlElement object representing the child element of the XML node represented by the current object with name name.

◆ parse_qname()

static int System::Xml::XmlNode::parse_qname ( const System::String qname,
std::string &  prefix,
std::string &  local_name 
)
staticprotected

Parses the XML node's qualified name by breaking it into a prefix and a local name.

Parameters
qnameThe qualfied name to parse
prefixOutput argument; the prefix part of the specified qualified name is assigned to it
local_nameOutput argument; the local name part of the specified qualified name is assigned to it
Returns
zero-based position of ":" prefix/name separator, if any, or -1 if no separator found.

◆ PrependChild()

virtual XmlNode::Ptr System::Xml::XmlNode::PrependChild ( XmlNode::Ptr  new_child)
virtual

Adds the specified XML node at the beginning of the list of children of the XML node represented by the current object.

Parameters
new_childThe XML node to add
Returns
A shared pointer to the specified XmlNode object child

Reimplemented in System::Xml::XmlElement, System::Xml::XmlDocumentFragment, and System::Xml::XmlDocument.

◆ reassign_native()

void System::Xml::XmlNode::reassign_native ( xmlNode *  node)
protected

Replaces the node reprsented by the current object with the specified one.

Parameters
nodeThe new node to be represented by the current object

◆ RemoveAll()

virtual void System::Xml::XmlNode::RemoveAll ( )
virtual

Removes all child nodes of the XML node reprsented by the current object.

Reimplemented in System::Xml::XmlAttribute.

◆ RemoveChild()

virtual XmlNode::Ptr System::Xml::XmlNode::RemoveChild ( XmlNode::Ptr  child)
virtual

Removes the specified child node of the XML node represented by the current object.

Parameters
childThe node to remove
Returns
The reoved node

Reimplemented in System::Xml::XmlDocument, and System::Xml::XmlAttribute.

◆ ReplaceChild()

virtual XmlNode::Ptr System::Xml::XmlNode::ReplaceChild ( XmlNode::Ptr  new_child,
XmlNode::Ptr  old_child 
)
virtual

Replaces the specified the specified child node of the node reprsented by the current object with another one.

Parameters
old_childThe node to replace
new_childThe node to replace old_child node with
Returns
The replaced node

◆ SelectNodes() [1/2]

virtual SharedPtr<XmlNodeList> System::Xml::XmlNode::SelectNodes ( String  xPath)
virtual

Returns a list of XML nodes that match the specfied XPath expression.

Parameters
xPathThe XPath expression
Returns
The list of XmlNode objects representing XML nodes that match xpath XPath expression

Reimplemented in System::Xml::XmlDocument.

◆ SelectNodes() [2/2]

virtual SharedPtr<XmlNodeList> System::Xml::XmlNode::SelectNodes ( String  xPath,
SharedPtr< XmlNamespaceManager nsMgr 
)
virtual

Returns a list of XML nodes that match the specfied XPath expression; any prefixes encountered in xpath expression are resolved using the specified namespace manager.

Parameters
xPathThe XPath expression
nsMgrThe XmlNamespaceManager object used to resolve prefixes found in xpath expression
Returns
The list of XmlNode objects representing XML nodes that match xpath XPath expression

Reimplemented in System::Xml::XmlDocument.

◆ SelectSingleNode() [1/2]

virtual XmlNode::Ptr System::Xml::XmlNode::SelectSingleNode ( String  xPath)
virtual

Returns the first XML node that match the specfied XPath expression.

Parameters
xPathThe XPath expression
Returns
An XmlNode object representing the first XML node that matched xpath XPath expression

◆ SelectSingleNode() [2/2]

virtual XmlNode::Ptr System::Xml::XmlNode::SelectSingleNode ( String  xPath,
SharedPtr< XmlNamespaceManager nsMgr 
)
virtual

Returns the first XML node that match the specfied XPath expression; any prefixes encountered in xpath expression are resolved using the specified namespace manager.

Parameters
xPathThe XPath expression
nsMgrThe XmlNamespaceManager object used to resolve prefixes found in xpath expression
Returns
An XmlNode object representing the first XML node that matched xpath XPath expression

Reimplemented in System::Xml::XmlDocument.

◆ set_InnerText()

virtual void System::Xml::XmlNode::set_InnerText ( String  value)
virtual

Sets the XML node's inner text by replacing all the child nodes (if any) with the contents of the given string.

Parameters
valueThe inner text to set; all XML markup encountered in this string is escaped

Reimplemented in System::Xml::XmlCDataSection, System::Xml::XmlAttribute, and System::Xml::XmlDocument.

◆ set_InnerXml()

virtual void System::Xml::XmlNode::set_InnerXml ( String  value)
virtual

Replaces the XML node's inner XML markup with the contents of the specified string.

Parameters
valueThe XML markup to set

Reimplemented in System::Xml::XmlAttribute.

◆ set_Prefix()

virtual void System::Xml::XmlNode::set_Prefix ( String  )
inlinevirtual

Sets the prefix of the XML node represented by the current object.

Reimplemented in System::Xml::XmlElement, and System::Xml::XmlAttribute.

◆ set_Value() [1/2]

void System::Xml::XmlNode::set_Value ( const String text,
bool  riseEvent 
)
protected

Sets the value of the XML node represented by the current object and triggers corresponding events.

Parameters
textThe value to set
riseEventSpecifies whether OnNodeChanging and OnNodeChanged events should be triggered

◆ set_Value() [2/2]

virtual void System::Xml::XmlNode::set_Value ( String  value)
virtual

Sets the value of the node represented by the current object.

Parameters
valueThe value to set

Reimplemented in System::Xml::XmlDeclaration, and System::Xml::XmlAttribute.

◆ WriteContentTo()

virtual void System::Xml::XmlNode::WriteContentTo ( SharedPtr< XmlWriter writer)
inlinevirtual

Saves all children of the XML node represented by the current object to the specified XmlWriter object.

Parameters
writerA XmlWriter object to save the chlid nodes to

Reimplemented in System::Xml::XmlElement, System::Xml::XmlDocumentFragment, System::Xml::XmlDocument, System::Xml::XmlDeclaration, System::Xml::XmlCDataSection, and System::Xml::XmlAttribute.

◆ WriteTo()

virtual void System::Xml::XmlNode::WriteTo ( SharedPtr< XmlWriter writer)
pure virtual

Member Data Documentation

◆ m_doc

std::shared_ptr<xmlDoc> System::Xml::XmlNode::m_doc
protected

XML document to which the XML node represented by the current object belongs.

◆ m_node

xmlNode* System::Xml::XmlNode::m_node
protected

Pointer to underlying libxml2 xmlNode object.

◆ m_owner

WeakPtr<XmlDocument> System::Xml::XmlNode::m_owner
protected

Weak poiter to the owning XML document.