Parent

Included Modules

Class/Module Index [+]

Quicksearch

Nokogiri::XML::Reader

Nokogiri::XML::Reader parses an XML document similar to the way a cursor would move. The Reader is given an XML document, and yields nodes to an each block.

Here is an example of usage:

reader = Nokogiri::XML::Reader(<<-eoxml)
  <x xmlns:tenderlove='http://tenderlovemaking.com/'>
    <tenderlove:foo awesome='true'>snuggles!</tenderlove:foo>
  </x>
eoxml

reader.each do |node|

  # node is an instance of Nokogiri::XML::Reader
  puts node.name

end

Note that Nokogiri::XML::Reader#each can only be called once!! Once the cursor moves through the entire document, you must parse the document again. So make sure that you capture any information you need during the first iteration.

The Reader parser is good for when you need the speed of a SAX parser, but do not want to write a Document handler.

Constants

TYPE_ATTRIBUTE

Attribute node type

TYPE_CDATA

CDATA node type

TYPE_COMMENT

Comment node type

TYPE_DOCUMENT

Document node type

TYPE_DOCUMENT_FRAGMENT

Document Fragment node type

TYPE_DOCUMENT_TYPE

Document Type node type

TYPE_ELEMENT

Element node type

TYPE_END_ELEMENT

Element end node type

TYPE_END_ENTITY

Entity end node type

TYPE_ENTITY

Entity node type

TYPE_ENTITY_REFERENCE

Entity Reference node type

TYPE_NONE
TYPE_NOTATION

Notation node type

TYPE_PROCESSING_INSTRUCTION

PI node type

TYPE_SIGNIFICANT_WHITESPACE

Significant Whitespace node type

TYPE_TEXT

Text node type

TYPE_WHITESPACE

Whitespace node type

TYPE_XML_DECLARATION

XML Declaration node type

Attributes

encoding[R]

The encoding for the document

errors[RW]

A list of errors encountered while parsing

source[R]

The XML source

Public Instance Methods

attribute_nodes() click to toggle source

Get a list of attributes for the current node

# File lib/nokogiri/xml/reader.rb, line 97
def attribute_nodes
  nodes = attr_nodes
  nodes.each { |v| v.instance_variable_set(:@_r, self) }
  nodes
end
attributes() click to toggle source

Get a list of attributes for the current node.

# File lib/nokogiri/xml/reader.rb, line 89
def attributes
  Hash[attribute_nodes.map { |node|
    [node.name, node.to_s]
  }].merge(namespaces || {})
end
each() click to toggle source

Move the cursor through the document yielding the cursor to the block

# File lib/nokogiri/xml/reader.rb, line 105
def each
  while cursor = self.read
    yield cursor
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.