class
   XML::Reader
 
  
  Overview
XML::Reader is a parser for XML that iterates a XML document.
require "xml"
reader = XML::Reader.new(<<-XML)
  <message>Hello XML!</message>
  XML
reader.read
reader.name # => "message"
reader.read
reader.value # => "Hello XML!"This is an alternative approach to XML.parse which parses an entire document
into an XML data structure.
XML::Reader offers more control and does not need to store the XML document
in memory entirely. The latter is especially useful for large documents with
the IO-based constructor.
WARNING This type is not concurrency-safe.
Defined in:
xml/reader.crxml/reader/type.cr
Constructors
- 
        .new(str : String, options : XML::ParserOptions = XML::ParserOptions.default)
        
          Creates a new reader from a string. 
- 
        .new(io : IO, options : XML::ParserOptions = XML::ParserOptions.default)
        
          Creates a new reader from an IO. 
Instance Method Summary
- 
        #[](attribute : String) : String
        
          Gets the attribute content for the attribute given by name. 
- 
        #[]?(attribute : String) : String | Nil
        
          Gets the attribute content for the attribute given by name. 
- 
        #attributes_count : Int32
        
          Returns attribute count of the node. 
- 
        #depth : Int32
        
          Returns the current nesting depth of the reader. 
- #document : Document
- 
        #empty_element? : Bool
        
          Checks if the node is an empty element. 
- 
        #errors : Array(XML::Error)
        
          Returns the errors reported while parsing. 
- 
        #expand : XML::Node
        
          Expands the node to a XML::Nodethat can be searched with XPath etc.
- 
        #expand? : XML::Node | Nil
        
          Expands the node to a XML::Nodethat can be searched with XPath etc.
- 
        #has_attributes? : Bool
        
          Checks if the node has any attributes. 
- 
        #move_to_attribute(name : String) : Bool
        
          Moves to the XML::Reader::Type::ATTRIBUTEwith the specified name.
- 
        #move_to_element : Bool
        
          Moves from the XML::Reader::Type::ATTRIBUTEto its containingXML::Reader::Type::ELEMENT.
- 
        #move_to_first_attribute : Bool
        
          Moves to the first XML::Reader::Type::ATTRIBUTEof the node.
- 
        #move_to_next_attribute : Bool
        
          Moves to the next XML::Reader::Type::ATTRIBUTEof the node.
- 
        #name : String
        
          Returns the name of the node. 
- 
        #next : Bool
        
          Moves the reader to the next node while skipping subtrees. 
- 
        #next_sibling : Bool
        
          Moves the reader to the next sibling node while skipping subtrees. 
- 
        #node_type : XML::Reader::Type
        
          Returns the XML::Reader::Typeof the node.
- 
        #read : Bool
        
          Moves the reader to the next node. 
- 
        #read_inner_xml : String
        
          Returns the node's XML content including subtrees. 
- 
        #read_outer_xml : String
        
          Returns the XML for the node and its content including subtrees. 
- 
        #value : String
        
          Returns the text content of the node. 
Instance methods inherited from class Reference
  
  
    
      ==(other : self)==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==, dup dup, hash(hasher) hash, initialize initialize, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference) : Bool
same?(other : Nil) same?, to_s(io : IO) : Nil to_s
Constructor methods inherited from class Reference
  
  
    
      new
    new, 
    
  
    
      unsafe_construct(address : Pointer, *args, **opts) : self
    unsafe_construct
    
  
      
  Class methods inherited from class Reference
  
  
    
      pre_initialize(address : Pointer)
    pre_initialize
    
  
      
    
      
  Instance methods inherited from class Object
  
  
    
      ! : Bool
    !, 
    
  
    
      !=(other)
    !=, 
    
  
    
      !~(other)
    !~, 
    
  
    
      ==(other)
    ==, 
    
  
    
      ===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash, in?(collection : Object) : Bool
in?(*values : Object) : Bool in?, inspect(io : IO) : Nil
inspect : String inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String to_json, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil to_pretty_json, to_s(io : IO) : Nil
to_s : String to_s, to_yaml(io : IO) : Nil
to_yaml : String to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as
Class methods inherited from class Object
  
  
    
      from_json(string_or_io, root : String)from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml
Macros inherited from class Object
  
  
    
      class_getter(*names, &block)
    class_getter, 
    
  
    
      class_getter!(*names)
    class_getter!, 
    
  
    
      class_getter?(*names, &block)
    class_getter?, 
    
  
    
      class_property(*names, &block)
    class_property, 
    
  
    
      class_property!(*names)
    class_property!, 
    
  
    
      class_property?(*names, &block)
    class_property?, 
    
  
    
      class_setter(*names)
    class_setter, 
    
  
    
      def_clone
    def_clone, 
    
  
    
      def_equals(*fields)
    def_equals, 
    
  
    
      def_equals_and_hash(*fields)
    def_equals_and_hash, 
    
  
    
      def_hash(*fields)
    def_hash, 
    
  
    
      delegate(*methods, to object)
    delegate, 
    
  
    
      forward_missing_to(delegate)
    forward_missing_to, 
    
  
    
      getter(*names, &block)
    getter, 
    
  
    
      getter!(*names)
    getter!, 
    
  
    
      getter?(*names, &block)
    getter?, 
    
  
    
      property(*names, &block)
    property, 
    
  
    
      property!(*names)
    property!, 
    
  
    
      property?(*names, &block)
    property?, 
    
  
    
      setter(*names)
    setter
    
  
    
  Constructor Detail
Instance Method Detail
Gets the attribute content for the attribute given by name.
Raises KeyError if attribute is not found.
Gets the attribute content for the attribute given by name.
Returns nil if attribute is not found.
Expands the node to a XML::Node that can be searched with XPath etc.
The returned XML::Node is only valid until the next call to #read.
Raises a XML::Error if the node could not be expanded.
Expands the node to a XML::Node that can be searched with XPath etc.
The returned XML::Node is only valid until the next call to #read.
Returns nil if the node could not be expanded.