W3cubDocs

/Nokogiri

class Nokogiri::XML::ParseOptions

Parent:
Object

Parse options for passing to Nokogiri.XML or Nokogiri.HTML

Building combinations of parse options

You can build your own combinations of these parse options by using any of the following methods: Note: All examples attempt to set the RECOVER & NOENT options. All examples use Ruby 2 optional parameter syntax.

Ruby's bitwise operators

You can use the Ruby bitwise operators to set various combinations.

Nokogiri.XML('<content>Chapter 1</content', options: Nokogiri::XML::ParseOptions.new((1 << 0) | (1 << 1)))
Method chaining

Every option has an equivalent method in lowercase. You can chain these methods together to set various combinations.

Nokogiri.XML('<content>Chapter 1</content', options: Nokogiri::XML::ParseOptions.new.recover.noent)
Using Ruby Blocks

You can also setup parse combinations in the block passed to Nokogiri.XML or Nokogiri.HTML

Nokogiri.XML('<content>Chapter 1</content') {|config| config.recover.noent}

Removing particular parse options

You can also remove options from an instance of ParseOptions dynamically. Every option has an equivalent no{option} method in lowercase. You can call these methods on an instance of ParseOptions to remove the option. Note that this is not available for STRICT.

# Setting the RECOVER & NOENT options...
options = Nokogiri::XML::ParseOptions.new.recover.noent
# later...
options.norecover # Removes the Nokogiri::XML::ParseOptions::RECOVER option
options.nonoent # Removes the Nokogiri::XML::ParseOptions::NOENT option

Constants

COMPACT

compact small text nodes; no modification of the tree allowed afterwards (will possibly crash if you try to modify the tree)

DEFAULT_HTML

the default options used for parsing HTML documents

DEFAULT_XML

the default options used for parsing XML documents

DTDATTR

Default DTD attributes

DTDLOAD

Load external subsets

DTDVALID

validate with the DTD

HUGE

relax any hardcoded limit from the parser

NOBASEFIX

do not fixup XINCLUDE xml:base uris

NOBLANKS

remove blank nodes

NOCDATA

merge CDATA as text nodes

NODICT

Do not reuse the context dictionary

NOENT

Substitute entities

NOERROR

suppress error reports

NONET

Forbid network access. Recommended for dealing with untrusted documents.

NOWARNING

suppress warning reports

NOXINCNODE

do not generate XINCLUDE START/END nodes

NSCLEAN

remove redundant namespaces declarations

OLD10

parse using XML-1.0 before update 5

PEDANTIC

pedantic error reporting

RECOVER

Recover from errors

SAX1

use the SAX1 interface internally

STRICT

Strict parsing

XINCLUDE

Implement XInclude substitution

Attributes

options[RW]
to_i[RW]

Public Class Methods

new(options = STRICT) Show source
# File lib/nokogiri/xml/parse_options.rb, line 77
def initialize options = STRICT
  @options = options
end

Public Instance Methods

inspect() Show source
Calls superclass method
# File lib/nokogiri/xml/parse_options.rb, line 111
def inspect
  options = []
  self.class.constants.each do |k|
    options << k.downcase if send(:"#{k.downcase}?")
  end
  super.sub(/>$/, " " + options.join(', ') + ">")
end
strict() Show source
# File lib/nokogiri/xml/parse_options.rb, line 100
def strict
  @options &= ~RECOVER
  self
end
strict?() Show source
# File lib/nokogiri/xml/parse_options.rb, line 105
def strict?
  @options & RECOVER == STRICT
end

© 2008–2017 Aaron Patterson, Mike Dalessio, Charles Nutter, Sergio Arbeo
Patrick Mahoney, Yoko Harada, Akinori Musha, John Shahid
Licensed under the MIT License.