Module: Nokogiri

Defined in:
lib/nokogiri.rb,
lib/nokogiri/css.rb,
lib/nokogiri/xml.rb,
lib/nokogiri/html.rb,
lib/nokogiri/xslt.rb,
lib/nokogiri/gumbo.rb,
lib/nokogiri/html4.rb,
lib/nokogiri/html5.rb,
lib/nokogiri/xml/dtd.rb,
lib/nokogiri/xml/sax.rb,
lib/nokogiri/css/node.rb,
lib/nokogiri/xml/attr.rb,
lib/nokogiri/xml/node.rb,
lib/nokogiri/xml/text.rb,
lib/nokogiri/xml/cdata.rb,
lib/nokogiri/xml/xpath.rb,
lib/nokogiri/css/parser.rb,
lib/nokogiri/css/parser.rb,
lib/nokogiri/html5/node.rb,
lib/nokogiri/xml/reader.rb,
lib/nokogiri/xml/schema.rb,
lib/nokogiri/xml/builder.rb,
lib/nokogiri/xml/pp/node.rb,
lib/nokogiri/syntax_error.rb,
lib/nokogiri/version/info.rb,
lib/nokogiri/xml/document.rb,
lib/nokogiri/xml/node_set.rb,
lib/nokogiri/xml/notation.rb,
lib/nokogiri/xml/relax_ng.rb,
lib/nokogiri/css/tokenizer.rb,
lib/nokogiri/html4/builder.rb,
lib/nokogiri/html5/builder.rb,
lib/nokogiri/xml/namespace.rb,
lib/nokogiri/class_resolver.rb,
lib/nokogiri/html4/document.rb,
lib/nokogiri/html5/document.rb,
lib/nokogiri/xml/sax/parser.rb,
lib/nokogiri/xml/searchable.rb,
lib/nokogiri/decorators/slop.rb,
lib/nokogiri/xml/entity_decl.rb,
lib/nokogiri/xslt/stylesheet.rb,
lib/nokogiri/css/syntax_error.rb,
lib/nokogiri/encoding_handler.rb,
lib/nokogiri/html4/sax/parser.rb,
lib/nokogiri/version/constant.rb,
lib/nokogiri/xml/element_decl.rb,
lib/nokogiri/xml/sax/document.rb,
lib/nokogiri/xml/syntax_error.rb,
lib/nokogiri/css/parser_extras.rb,
lib/nokogiri/css/xpath_visitor.rb,
lib/nokogiri/xml/parse_options.rb,
lib/nokogiri/xml/xpath_context.rb,
lib/nokogiri/css/selector_cache.rb,
lib/nokogiri/xml/attribute_decl.rb,
lib/nokogiri/xml/character_data.rb,
lib/nokogiri/html4/entity_lookup.rb,
lib/nokogiri/jruby/nokogiri_jars.rb,
lib/nokogiri/xml/element_content.rb,
lib/nokogiri/xml/sax/push_parser.rb,
lib/nokogiri/xml/entity_reference.rb,
lib/nokogiri/html4/encoding_reader.rb,
lib/nokogiri/html4/sax/push_parser.rb,
lib/nokogiri/xml/document_fragment.rb,
lib/nokogiri/xml/node/save_options.rb,
lib/nokogiri/xml/pp/character_data.rb,
lib/nokogiri/xml/sax/parser_context.rb,
lib/nokogiri/xml/xpath/syntax_error.rb,
lib/nokogiri/html4/document_fragment.rb,
lib/nokogiri/html5/document_fragment.rb,
lib/nokogiri/html4/sax/parser_context.rb,
lib/nokogiri/html4/element_description.rb,
lib/nokogiri/xml/processing_instruction.rb,
lib/nokogiri/html4/element_description_defaults.rb,
ext/nokogiri/nokogiri.c

Overview

-- DO NOT MODIFY!!!! This file is automatically generated by rex 1.0.8 from lexical definition file "lib/nokogiri/css/tokenizer.rex". ++

Defined Under Namespace

Modules: CSS, ClassResolver, Decorators, Gumbo, HTML, HTML4, HTML5, Test, XML, XSLT Classes: EncodingHandler, SyntaxError, VersionInfo

Constant Summary collapse

VERSION_INFO =

Detailed version info about Nokogiri and the installed extension dependencies.

VersionInfo.instance.to_hash
VERSION =

The version of Nokogiri you are using

"1.19.4"
JAR_DEPENDENCIES =

generated by the :vendor_jars rake task

{
  "isorelax:isorelax" => "20030108",
  "net.sf.saxon:Saxon-HE" => "12.7",
  "net.sourceforge.htmlunit:neko-htmlunit" => "2.63.0",
  "nu.validator:jing" => "20200702VNU",
  "org.nokogiri:nekodtd" => "0.1.11.noko2",
  "org.xmlresolver:xmlresolver" => "5.3.3",
  "xalan:serializer" => "2.7.3",
  "xalan:xalan" => "2.7.3",
  "xerces:xercesImpl" => "2.12.2",
  "xml-apis:xml-apis" => "1.4.01",
}.freeze
XERCES_VERSION =
JAR_DEPENDENCIES["xerces:xercesImpl"]
NEKO_VERSION =
JAR_DEPENDENCIES["net.sourceforge.htmlunit:neko-htmlunit"]

Class Method Summary collapse

Class Method Details

.HTML4Object

Convenience method for Nokogiri::HTML4::Document.parse



7
8
9
# File 'lib/nokogiri/html4.rb', line 7

def HTML4(...)
  Nokogiri::HTML4::Document.parse(...)
end

.HTML5Object

Convenience method for Nokogiri::HTML5::Document.parse



28
29
30
# File 'lib/nokogiri/html5.rb', line 28

def self.HTML5(...)
  Nokogiri::HTML5::Document.parse(...)
end

.install_default_aliasesObject

:nodoc:



96
97
98
99
# File 'lib/nokogiri.rb', line 96

def install_default_aliases
  warn("Nokogiri.install_default_aliases is deprecated. Please call Nokogiri::EncodingHandler.install_default_aliases instead. This will become an error in Nokogiri v1.17.0.", uplevel: 1, category: :deprecated) # deprecated in v1.14.0, remove in v1.17.0
  Nokogiri::EncodingHandler.install_default_aliases
end

.jruby?Boolean

:nodoc:

Returns:

  • (Boolean)


216
217
218
# File 'lib/nokogiri/version/info.rb', line 216

def self.jruby?
  VersionInfo.instance.jruby?
end

.libxml2_patchesObject

:nodoc:



221
222
223
224
225
226
227
# File 'lib/nokogiri/version/info.rb', line 221

def self.libxml2_patches
  if VersionInfo.instance.libxml2_using_packaged?
    Nokogiri::VERSION_INFO["libxml"]["patches"]
  else
    []
  end
end

.make(input = nil, opts = {}, &blk) ⇒ Object

Create a new Nokogiri::XML::DocumentFragment



68
69
70
71
72
73
74
# File 'lib/nokogiri.rb', line 68

def make(input = nil, opts = {}, &blk)
  if input
    Nokogiri::HTML4.fragment(input).children.first
  else
    Nokogiri(&blk)
  end
end

.parse(string, url = nil, encoding = nil, options = nil) ⇒ Object

Parse an HTML or XML document. string contains the document.



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/nokogiri.rb', line 42

def parse(string, url = nil, encoding = nil, options = nil)
  if string.respond_to?(:read) ||
      /^\s*<(?:!DOCTYPE\s+)?html[\s>]/i.match?(string[0, 512])
    # Expect an HTML indicator to appear within the first 512
    # characters of a document. (<?xml ?> + <?xml-stylesheet ?>
    # shouldn't be that long)
    Nokogiri.HTML4(
      string,
      url,
      encoding,
      options || XML::ParseOptions::DEFAULT_HTML,
    )
  else
    Nokogiri.XML(
      string,
      url,
      encoding,
      options || XML::ParseOptions::DEFAULT_XML,
    )
  end.tap do |doc|
    yield doc if block_given?
  end
end

.Slop(*args, &block) ⇒ Object

Parse a document and add the Slop decorator. The Slop decorator implements method_missing such that methods may be used instead of CSS or XPath. For example:

doc = Nokogiri::Slop(<<-eohtml)
<html>
  <body>
    <p>first</p>
    <p>second</p>
  </body>
</html>
eohtml
assert_equal('second', doc.html.body.p[1].text)


91
92
93
# File 'lib/nokogiri.rb', line 91

def Slop(*args, &block)
  Nokogiri(*args, &block).slop!
end

.uses_gumbo?Boolean

:nodoc:

Returns:

  • (Boolean)


211
212
213
# File 'lib/nokogiri/version/info.rb', line 211

def self.uses_gumbo?
  uses_libxml? # TODO: replace with Gumbo functionality
end

.uses_libxml?(requirement = nil) ⇒ Boolean

:nodoc:

Returns:

  • (Boolean)


203
204
205
206
207
208
# File 'lib/nokogiri/version/info.rb', line 203

def self.uses_libxml?(requirement = nil)
  return false unless VersionInfo.instance.libxml2?
  return true unless requirement

  Gem::Requirement.new(requirement).satisfied_by?(VersionInfo.instance.loaded_libxml_version)
end

.XMLObject

Convenience method for Nokogiri::XML::Document.parse



6
7
8
# File 'lib/nokogiri/xml.rb', line 6

def XML(...)
  Nokogiri::XML::Document.parse(...)
end

.XSLTObject

Convenience method for Nokogiri::XSLT.parse



7
8
9
# File 'lib/nokogiri/xslt.rb', line 7

def XSLT(...)
  XSLT.parse(...)
end