Asposecpplib
System::Xml::XmlNodeReader Class Reference

Provides non-cached forward-only access to data in 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::XmlTextReader.

Public Member Functions

 XmlNodeReader (const System::SharedPtr< XmlNode > &node)
 Constructs an instance that provides access to the specified XML node. More...
 
- Public Member Functions inherited from System::Xml::XmlTextReader
 XmlTextReader (const String &inputUri)
 Constructs an instance of the XmlTextReader class that reads XML data from the specified file. More...
 
 XmlTextReader (const SharedPtr< System::IO::Stream > &input)
 Constructs an instance of the XmlTextReader class that reads XML data from the specified stream. More...
 
 XmlTextReader (const SharedPtr< System::IO::TextReader > &input)
 Constructs an instance of the XmlTextReader class that reads XML data from the specified TextReader. More...
 
 XmlTextReader (const String &url, const SharedPtr< System::IO::Stream > &input)
 Constructs an instance of the XmlTextReader class that reads XML data from the specified stream; a parameter specifies an URL to resolve resources. More...
 
 XmlTextReader (const String &url, const SharedPtr< System::IO::TextReader > &input)
 Constructs an instance of the XmlTextReader class that reads XML data from the specified TextReader; a parameter specifies an URL to resolve resources. More...
 
 XmlTextReader (const String &inputUri, const XmlReaderSettings::Ptr &settings)
 Constructs an instance of the XmlTextReader class that reads XML data from the specified file using the specified settings. More...
 
 XmlTextReader (const SharedPtr< System::IO::Stream > &input, const XmlReaderSettings::Ptr &settings)
 Constructs an instance of the XmlTextReader class that reads XML data from the specified stream using the specified settings. More...
 
 XmlTextReader (const SharedPtr< System::IO::TextReader > &input, const XmlReaderSettings::Ptr &settings)
 Constructs an instance of the XmlTextReader class that reads XML data from the specified TextReader using the specified settings. More...
 
 XmlTextReader (const SharedPtr< System::IO::TextReader > &input, const XmlReaderSettings::Ptr &settings, const XmlParserContext::Ptr &context)
 Constructs an instance of the XmlTextReader class that reads XML data from the specified TextReader using the specified settings and context information for parsing. More...
 
 XmlTextReader (const SharedPtr< System::IO::Stream > &input, XmlNodeType fragType, const XmlParserContext::Ptr &context)
 Constructs an instance of the XmlTextReader class that reads an XML fragment of the specified type from the specified stream using the specified context information for parsing. More...
 
 XmlTextReader (const String &xmlFragment, XmlNodeType fragType, const XmlParserContext::Ptr &context)
 Constructs an instance of the XmTextReader class that reads an XML fragment of the specified type from the specified string using context information for parsing. More...
 
 XmlTextReader (const SharedPtr< System::IO::Stream > &input, const XmlReaderSettings::Ptr &settings, const XmlParserContext::Ptr &context)
 Constructs an instance of the XmlTextReader class that reads XML data from the specified stream using the specified settings and context information for parsing. More...
 
 XmlTextReader (const String &xmlFragment, const XmlReaderSettings::Ptr &settings, const XmlParserContext::Ptr &context)
 Constructs an instance of the XmTextReader class that reads an XML fragment specified as a string using the specified settings and context information for parsing. More...
 
virtual ~XmlTextReader ()
 Destructor. More...
 
int ReadElementContentAsBase64 (const ArrayPtr< uint8_t > &buffer, int index, int count) override
 Call this methods until it returns 0 to get all the data. More...
 
String get_Name () override
 Returns the qualified name of the current node. More...
 
String get_Prefix () override
 Returns the prefix of the current node. More...
 
String get_LocalName () override
 Returns the local name of the current node. More...
 
String get_NamespaceURI () override
 Returns the namespace URI of the current node. More...
 
String get_BaseURI () override
 Returns the base URI of the current node. More...
 
String get_Value () override
 Returns the value of the current node. More...
 
SharedPtr< Schema::IXmlSchemaInfoget_SchemaInfo () override
 
void InitLibXml2EntitySubstitution ()
 Initialize ENTITY substitution for libxml. More...
 
bool get_CanResolveEntity () override
 Determines whether the current XmlReader object can parse and resolve entities. More...
 
void ResolveEntity () override
 Resolves the entity reference for EntityReference nodes. More...
 
ReadState get_ReadState () override
 Returns the current state of the reader. More...
 
bool get_IsEmptyElement () override
 Determines if the current node is an empty element. More...
 
bool get_IsDefault () override
 Determines if the current node is an attribute that was generated from the default value defined in the DTD or schema. More...
 
int get_Depth () override
 Returns the depths of the current node in the XML tree. More...
 
bool get_EOF () override
 Determines if the reader has reached the end of stream. More...
 
bool get_HasAttributes () override
 Determines if the current node has any attributes. More...
 
int get_AttributeCount () override
 Returns the number of attributes in the current node. More...
 
bool get_HasValue () override
 Determines if the current node has a value. More...
 
String get_XmlLang () override
 Returns the current xml:lang scope. More...
 
UChar get_QuoteChar () override
 Returns the used as quotation mark character used to enclose the value of an XML attribute node. More...
 
XmlNodeType get_NodeType () override
 Returns the type of the current node. More...
 
String GetAttribute (const String &name) override
 Returns the value of the attribute with the specified name. More...
 
String GetAttribute (const String &localName, const String &namespaceURI) override
 Returns the value of the attribute with the specified name and namespace. More...
 
bool MoveToAttribute (const String &name) override
 Moves the reader's position to the attribute with the specified name. More...
 
void MoveToAttribute (int index) override
 Moves the reader's position to the attribute with the specified index. More...
 
bool MoveToNextAttribute () override
 Moves the reader's position to the next attribute. More...
 
bool MoveToFirstAttribute () override
 Moves the reader's position to the first attribute in the list of attributes of the current node. More...
 
XmlNodeType MoveToContent () override
 Moves the position of the reader to the next content node, skipping the non-content nodes. More...
 
bool MoveToElement () override
 Moves the reader's position to the element node that contains the current attribute node. More...
 
bool Next () override
 Reads the next node. More...
 
bool Read () override
 Reads to the next node, including subtree (if any). More...
 
String LookupNamespace (const String &prefix) override
 Resolves a namespace prefix in the scope of the current element. More...
 
void Skip () override
 Skips the children of the current node. More...
 
void Close () override
 Changes the state of the reader to ReadState::Closed. More...
 
String ReadString () override
 Reads the contents of an element or a text node. More...
 
void ReadStartElement () override
 Checks if the current content node is an element and moves the the reader's position to the next node. More...
 
void ReadStartElement (const String &name) override
 Checks if the current content node is an element with the specified qualified name and moves the the reader's position to the next node. More...
 
void ReadStartElement (const String &localName, const String &namespaceUri) override
 Checks if the current content node is an element with the specified local name and namespace URI and moves the the reader's position to the next node. More...
 
String ReadInnerXml () override
 Returns a string containing all the content of the current node, including the markup, but excluding start and end tags. More...
 
String ReadSubtreeInnerXml ()
 Returns a string containing all the content of the current node, including the markup, but excluding start and end tags. Unlike ReadInnerXml() it doesn't move current node. More...
 
String ReadOuterXml () override
 Returns a string containing all the content of the current node, including the markup, and including start and end tags. More...
 
String ReadElementString () override
 Reads the contents of a text-only element. More...
 
String ReadElementString (const String &value) override
 Checks if the current node is an element whose qualified name matches the specified value and reads its content. More...
 
String ReadElementString (const String &localName, const String &namespaceUri) override
 Checks if the current node is an element whose local name and namespace URI match the specified values and returns its content as string. More...
 
bool ReadAttributeValue () override
 Reads attribute value. More...
 
String get_Encoding () const
 Returns the document's encoding. More...
 
void set_XmlResolver (const SharedPtr< XmlResolver > &value)
 Sets the XML Resolver object used to access external XML documents. More...
 
SharedPtr< XmlNameTableget_NameTable () override
 Returns the name table used by the current object. More...
 
int get_LineNumber () const
 Returns the current line number. More...
 
int get_LinePosition () const
 Returns the current line position. More...
 
void set_ProhibitDtd (bool value)
 Sets a value that indicates if DTD processing should be prohibited. More...
 
void set_EntityHandling (EntityHandling value)
 Sets a value that specifies how the reader should handle entities. More...
 
void set_Normalization (bool value)
 Sets a value that indicates if the white space and attribute values should be normalized. More...
 
void set_WhitespaceHandling (WhitespaceHandling value)
 Sets a value that indicates how the whitespace characters should be handled by the reader. More...
 
void set_DtdProcessing (DtdProcessing value)
 Sets a value that determines the processing of DTD. More...
 
int ReadBinHex (const ArrayPtr< uint8_t > &buffer, int startPosition, int length)
 Decodes a BinHex-encoded data and returns decoded bytes. More...
 
SharedPtr< XmlReaderSettingsget_Settings () const override
 Returns the settings of the XmlReader. More...
 
int native_parse_flags () const
 Returns a bitwise set of flags used by the underlying libxml2 xmlTextReader object. More...
 
void RaiseLastError () override
 
- Public Member Functions inherited from System::Xml::XmlReader
String idx_get (const String &name)
 Returns the value of the attribute with the specified name. More...
 
virtual String GetAttribute (int32_t index)
 Returns the value of the attribute with the specified index. More...
 
virtual bool ReadToNextSibling (const String &name)
 Moves the position of the reader to the next sibling with the specified name. More...
 
virtual Ptr ReadSubtree ()
 Read an element and all its children, and return a new XmlReader object set to ReadState::Initial. More...
 
virtual bool ReadToFollowing (const String &name)
 Reads until an element with the specified name is encountered. More...
 
virtual bool ReadToFollowing (const String &localName, const String &namespaceURI)
 Reads until an element with the specified local name name and namespace URI is encountered. More...
 
virtual bool ReadToDescendant (const String &name)
 Reads to the first descendant of the current element with the given name. More...
 
virtual bool ReadToDescendant (const String &localName, const String &namespaceURI)
 
virtual bool ReadContentAsBoolean ()
 Reads current element's contents as boolean. More...
 
virtual double ReadContentAsDouble ()
 Reads current element's contents as double. More...
 
virtual float ReadContentAsFloat ()
 Reads current element's contents as float. More...
 
virtual Decimal ReadContentAsDecimal ()
 Reads current element's contents as decimal. More...
 
virtual int32_t ReadContentAsInt ()
 Reads current element's contents as integer. More...
 
virtual int64_t ReadContentAsLong ()
 Reads current element's contents as long integer. More...
 
virtual String ReadContentAsString ()
 Reads current element's contents as string. More...
 
virtual DateTime ReadContentAsDateTime ()
 Concatenates values of textual nodes of the current content, ignoring comments and PIs, expanding entity references, and converts the content to a DateTime. Stops at start tags and end tags. More...
 
virtual DateTime ReadElementContentAsDateTime ()
 Returns the content of the current element as a DateTime. Moves to the node following the element's end tag. More...
 
virtual DateTime ReadElementContentAsDateTime (const String &localName, const String &namespaceURI)
 Checks local name and namespace of the current element and returns its content as a DateTime. Moves to the node following the element's end tag. More...
 
virtual int ReadElementContentAsInt (const String &localName, const String &namespaceURI)
 Checks if the current node is an element whose local name and namespce URI match the specified values and returns its content as 32-bit integer value. More...
 
virtual int ReadElementContentAsInt ()
 Returns the content of the current element as an int. Moves to the node following the element's end tag. More...
 
virtual bool ReadElementContentAsBoolean ()
 Returns the content of the current element as a boolean. Moves to the node following the element's end tag. More...
 
virtual bool ReadElementContentAsBoolean (const String &localName, const String &namespaceURI)
 Checks if the current node is an element whose local name and namespce URI match the specified values and returns its content as boolean value. More...
 
virtual String ReadElementContentAsString (const String &localName, const String &namespaceURI)
 Checks if the current node is an element whose local name and namespce URI match the specified values and returns its content as string. More...
 
virtual String ReadElementContentAsString ()
 Returns the content of the current element as a string. Moves to the node following the element's end tag. More...
 
virtual void ReadEndElement ()
 Determines if the current content node is an end tag and advances the reader to the next node. More...
 
virtual bool IsStartElement ()
 Calls MoveToContent() and then determines if the current node is a start tag or an empty element tag. More...
 
virtual bool IsStartElement (const String &name)
 Calls MoveToContent() and then determines if the current node is a start tag or an empty element tag and if the found node's qualified name matches the specified value. More...
 
virtual bool IsStartElement (const String &name, const String &ns)
 Calls MoveToContent() and then determines if the current node is a start tag or an empty element tag and if the found node's qualified name matches the specified value. More...
 
xmlTextReader * native () const
 Returns a pointer to the underlying libxml2 xmlTextReader object. More...
 
xmlDoc * native_doc ()
 Returns a pointer to the current document used by the xmlTextReader object. More...
 
- Public Member Functions inherited from System::IDisposable
virtual void Dispose ()
 Does nothing. 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...
 

Additional Inherited Members

- Public Types inherited from System::Xml::XmlTextReader
typedef SharedPtr< XmlTextReaderPtr
 An alias for shared pointer to an instance of this class. More...
 
- Public Types inherited from System::Xml::XmlReader
typedef SharedPtr< XmlReaderPtr
 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...
 
- Static Public Member Functions inherited from System::Xml::XmlReader
static XmlReader::Ptr Create (const String &inputUri)
 Constructs an instance of the XmlReader class that reads XML data from the specified file. More...
 
static XmlReader::Ptr Create (const SharedPtr< System::IO::Stream > &input)
 Constructs an instance of the XmlReader class that reads XML data from the specified stream. More...
 
static XmlReader::Ptr Create (const SharedPtr< System::IO::TextReader > &input)
 Constructs an instance of the XmlReader class that reads XML data from the specified TextReader. More...
 
static XmlReader::Ptr Create (const String &inputUri, const SharedPtr< XmlReaderSettings > &settings)
 Constructs an instance of the XmlReader class that reads XML data from the specified file using the specified settings. More...
 
static XmlReader::Ptr Create (const SharedPtr< System::IO::Stream > &input, const SharedPtr< XmlReaderSettings > &settings)
 Constructs an instance of the XmlReader class that reads XML data from the specified stream using the specified settings. More...
 
static XmlReader::Ptr Create (const SharedPtr< System::IO::Stream > &input, const SharedPtr< XmlReaderSettings > &settings, const String &baseUri)
 NOT IMPLEMENTED. More...
 
static XmlReader::Ptr Create (const SharedPtr< System::IO::TextReader > &input, const SharedPtr< XmlReaderSettings > &settings)
 Constructs an instance of the XmlReader class that reads XML data from the specified TextReader using the specified settings. More...
 
static XmlReader::Ptr Create (const SharedPtr< System::IO::TextReader > &input, const SharedPtr< XmlReaderSettings > &settings, const SharedPtr< XmlParserContext > &inputContext)
 Constructs an instance of the XmlReader class that reads XML data from the specified TextReader using the specified settings and cotext information for parsing. More...
 
static XmlReader::Ptr Create (const SharedPtr< System::IO::Stream > &input, const SharedPtr< XmlReaderSettings > &settings, const SharedPtr< XmlParserContext > &inputContext)
 Constructs an instance of the XmlReader class that reads XML data from the specified stream using the specified settings and cotext information for parsing. More...
 
static XmlReader::Ptr Create (const SharedPtr< System::IO::TextReader > &input, const SharedPtr< XmlReaderSettings > &settings, const System::String &baseUrl)
 Constructs an instance of the XmlReader class that reads XML data from the specified TextReader using the specified settings and base URI. More...
 
static XmlReader::Ptr Create (const XmlReader::Ptr &input, const SharedPtr< XmlReaderSettings > &settings)
 Constructs an instance of the XmlReader class that uses the specified XmlReader object as underlying reader. More...
 
- 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...
 
- Protected Member Functions inherited from System::Xml::XmlTextReader
 XmlTextReader ()
 Constructs an instance of XmlTextReader class. More...
 
- Protected Member Functions inherited from System::Xml::XmlReader
 XmlReader ()
 Constructs an instance of XmlReader class. More...
 
- Static Protected Member Functions inherited from System::Xml::XmlReader
static bool is_content (XmlNodeType type)
 Determines if the node of the specified type is a content node. More...
 
- Protected Attributes inherited from System::Xml::XmlTextReader
int m_parseFlags = 0
 A bitwise set of flags used by the underlying libxml2 xmlTextReader object. More...
 
SharedPtr< XmlReaderSettingsm_settings
 Settings controlling the behavior of the current XmlTextReader object. More...
 
XmlParserContext::Ptr m_context
 XML Parser context. More...
 
- Protected Attributes inherited from System::Xml::XmlReader
bool m_callbackRegistered = false
 
xmlTextReader * m_reader
 The underlying naive libxml2 XML reader object used by the current object. More...
 
std::unique_ptr< xmlDoc, void(*)(xmlDoc *)> m_internalDoc
 A pointer to the libxml2 object that represents an XML document to which the XML node read by the current object belongs. More...
 

Detailed Description

Provides non-cached forward-only access to data in 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.

Constructor & Destructor Documentation

◆ XmlNodeReader()

System::Xml::XmlNodeReader::XmlNodeReader ( const System::SharedPtr< XmlNode > &  node)
explicit

Constructs an instance that provides access to the specified XML node.

Parameters
nodean XmlNode object to be read