Class: Nokogiri::XML::DocumentFragment

### Home Classes Methods

### In Files

- lib/nokogiri/xml/document_fragment.rb
- ext/nokogiri/html_document.c

### Parent

Nokogiri::XML::Node

### Methods

- ::new
- ::new
- ::parse
- #css
- #errors
- #name
- #search
- #serialize
- #to_html
- #to_s
- #to_xhtml
- #to_xml

### Files

- C_CODING_STYLE.rdoc
- Manifest.txt
- README.txt

### Class/Module Index

Quicksearch

- Nokogiri
- Nokogiri::CSS
- Nokogiri::CSS::Node
- Nokogiri::CSS::Parser
- Nokogiri::CSS::SyntaxError
- Nokogiri::CSS::Tokenizer
- Nokogiri::CSS::Tokenizer::ScanError
- Nokogiri::Decorators
- Nokogiri::Decorators::Slop
- Nokogiri::EncodingHandler
- Nokogiri::HTML
- Nokogiri::HTML::Builder
- Nokogiri::HTML::Document
- Nokogiri::HTML::Document::EncodingReader
- Nokogiri::HTML::Document::EncodingReader::JumpSAXHandler
- Nokogiri::HTML::DocumentFragment
- Nokogiri::HTML::ElementDescription
- Nokogiri::HTML::EntityDescription
- Nokogiri::HTML::EntityLookup
- Nokogiri::HTML::SAX
- Nokogiri::HTML::SAX::Parser
- Nokogiri::HTML::SAX::ParserContext
- Nokogiri::HTML::SAX::PushParser
- Nokogiri::SyntaxError
- Nokogiri::XML
- Nokogiri::XML::Attr
- Nokogiri::XML::AttributeDecl
- Nokogiri::XML::Builder
- Nokogiri::XML::CDATA
- Nokogiri::XML::CharacterData
- Nokogiri::XML::Comment
- Nokogiri::XML::DTD
- Nokogiri::XML::Document
- Nokogiri::XML::DocumentFragment
- Nokogiri::XML::Element
- Nokogiri::XML::ElementContent
- Nokogiri::XML::ElementDecl
- Nokogiri::XML::EntityDecl
- Nokogiri::XML::EntityReference
- Nokogiri::XML::Namespace
- Nokogiri::XML::Node
- Nokogiri::XML::Node::SaveOptions
- Nokogiri::XML::NodeSet
- Nokogiri::XML::Notation
- Nokogiri::XML::PP
- Nokogiri::XML::PP::CharacterData
- Nokogiri::XML::PP::Node
- Nokogiri::XML::ParseOptions
- Nokogiri::XML::ProcessingInstruction
- Nokogiri::XML::Reader
- Nokogiri::XML::RelaxNG
- Nokogiri::XML::SAX
- Nokogiri::XML::SAX::Document
- Nokogiri::XML::SAX::Parser
- Nokogiri::XML::SAX::Parser::Attribute
- Nokogiri::XML::SAX::ParserContext
- Nokogiri::XML::SAX::PushParser
- Nokogiri::XML::Schema
- Nokogiri::XML::Searchable
- Nokogiri::XML::SyntaxError
- Nokogiri::XML::Text
- Nokogiri::XML::XPath
- Nokogiri::XML::XPath::SyntaxError
- Nokogiri::XML::XPathContext
- Nokogiri::XSLT
- Nokogiri::XSLT::Stylesheet
- XSD
- XSD::XMLParser
- XSD::XMLParser::Nokogiri

No matching classes.

# Nokogiri::XML::DocumentFragment

### Public Class Methods

new(document, tags = nil, ctx = nil) click to toggle source

Create a new DocumentFragment from `tags`.

If `ctx` is present, it is used as a context node for the subtree created, e.g., namespaces will be resolved relative to `ctx`.

    # File lib/nokogiri/xml/document_fragment.rb, line 10
    def initialize document, tags = nil, ctx = nil
      return self unless tags

      children = if ctx
                   # Fix for issue#490
                   if Nokogiri.jruby?
                     # fix for issue #770
                     ctx.parse("<root #{namespace_declarations(ctx)}>#{tags}</root>").children
                   else
                     ctx.parse(tags)
                   end
                 else
                   XML::Document.parse("<root>#{tags}</root>")                         .xpath("/root/node()")
                 end
      children.each { |child| child.parent = self }
    end

new(document) click to toggle source

Create a new DocumentFragment element on the `document`

    static VALUE new(int argc, VALUE *argv, VALUE klass)
    {
      xmlDocPtr xml_doc;
      xmlNodePtr node;
      VALUE document;
      VALUE rest;
      VALUE rb_node;

      rb_scan_args(argc, argv, "1*", &document, &rest);

      Data_Get_Struct(document, xmlDoc, xml_doc);

      node = xmlNewDocFragment(xml_doc->doc);

      nokogiri_root_node(node);

      rb_node = Nokogiri_wrap_xml_node(klass, node);
      rb_obj_call_init(rb_node, argc, argv);

      if(rb_block_given_p()) rb_yield(rb_node);

      return rb_node;
    }

parse(tags) click to toggle source

Create a Nokogiri::XML::DocumentFragment from `tags`

    # File lib/nokogiri/xml/document_fragment.rb, line 118
    def parse tags
      self.new(XML::Document.new, tags)
    end

### Public Instance Methods

css *rules, [namespace-bindings, custom-pseudo-class] click to toggle source

Search this fragment for CSS `rules`. `rules` must be one or more CSS selectors. For example:

For more information see Nokogiri::XML::Searchable#css

    # File lib/nokogiri/xml/document_fragment.rb, line 82
    def css *args
      if children.any?
        children.css(*args) # 'children' is a smell here
      else
        NodeSet.new(document)
      end
    end

errors() click to toggle source

A list of Nokogiri::XML::SyntaxError found when parsing a document

    # File lib/nokogiri/xml/document_fragment.rb, line 124
    def errors
      document.errors
    end

name() click to toggle source

return the name for DocumentFragment

    # File lib/nokogiri/xml/document_fragment.rb, line 30
    def name
      '#document-fragment'
    end

search *paths, [namespace-bindings, xpath-variable-bindings, custom-handler-class] click to toggle source

Search this fragment for `paths`. `paths` must be one or more XPath or CSS queries.

For more information see Nokogiri::XML::Searchable#search

    # File lib/nokogiri/xml/document_fragment.rb, line 101
    def search *rules
      rules, handler, ns, binds = extract_params(rules)

      rules.inject(NodeSet.new(document)) do |set, rule|
        set += if rule =~ Searchable::LOOKS_LIKE_XPATH
                 xpath(*([rule, ns, handler, binds].compact))
               else
                 children.css(*([rule, ns, handler].compact)) # 'children' is a smell here
               end
      end
    end

serialize() click to toggle source
Alias for: to_s
to_html(*args) click to toggle source

Convert this DocumentFragment to html See Nokogiri::XML::NodeSet#to_html

    # File lib/nokogiri/xml/document_fragment.rb, line 43
    def to_html *args
      if Nokogiri.jruby?
        options = args.first.is_a?(Hash) ? args.shift : {}
        if !options[:save_with]
          options[:save_with] = Node::SaveOptions::NO_DECLARATION | Node::SaveOptions::NO_EMPTY_TAGS | Node::SaveOptions::AS_HTML
        end
        args.insert(0, options)
      end
      children.to_html(*args)
    end

to_s() click to toggle source

Convert this DocumentFragment to a string

    # File lib/nokogiri/xml/document_fragment.rb, line 36
    def to_s
      children.to_s
    end

Also aliased as: serialize
to_xhtml(*args) click to toggle source

Convert this DocumentFragment to xhtml See Nokogiri::XML::NodeSet#to_xhtml

    # File lib/nokogiri/xml/document_fragment.rb, line 57
    def to_xhtml *args
      if Nokogiri.jruby?
        options = args.first.is_a?(Hash) ? args.shift : {}
        if !options[:save_with]
          options[:save_with] = Node::SaveOptions::NO_DECLARATION | Node::SaveOptions::NO_EMPTY_TAGS | Node::SaveOptions::AS_XHTML
        end
        args.insert(0, options)
      end
      children.to_xhtml(*args)
    end

to_xml(*args) click to toggle source

Convert this DocumentFragment to xml See Nokogiri::XML::NodeSet#to_xml

    # File lib/nokogiri/xml/document_fragment.rb, line 71
    def to_xml *args
      children.to_xml(*args)
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.