class Nokogiri::XML::ParseOptions - nokogiri-1.10.3 Documentation

# class Nokogiri::XML::ParseOptions

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) click to toggle source

    # File lib/nokogiri/xml/parse_options.rb, line 77
    def initialize options = STRICT
      @options = options
    end

### Public Instance Methods

inspect() click to toggle 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() click to toggle source

    # File lib/nokogiri/xml/parse_options.rb, line 100
    def strict
      @options &= ~RECOVER
      self
    end

strict?() click to toggle source

    # File lib/nokogiri/xml/parse_options.rb, line 105
    def strict?
      @options & RECOVER == STRICT
    end