Class: Nokogiri::XML::EntityReference

Inherits:
Node
  • Object
show all
Defined in:
lib/nokogiri/xml/entity_reference.rb,
ext/nokogiri/xml_entity_reference.c

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

This class inherits a constructor from Nokogiri::XML::Node

Class Method Details

.new(document, content) ⇒ Object

Create a new EntityReference element on the document with name



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'ext/nokogiri/xml_entity_reference.c', line 9

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

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

  Data_Get_Struct(document, xmlDoc, xml_doc);

  node = xmlNewReference(
      xml_doc,
      (const xmlChar *)StringValueCStr(name)
  );

  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;
}

Instance Method Details

#childrenObject



5
6
7
8
9
10
11
12
# File 'lib/nokogiri/xml/entity_reference.rb', line 5

def children  # libxml2 will create a malformed child node for predefined
  # entities. because any use of that child is likely to cause a
  # segfault, we shall pretend that it doesn't exist.
  #
  # see https://github.com/sparklemotion/nokogiri/issues/1238 for details

  NodeSet.new(document)
end

#inspect_attributesObject



14
15
16
# File 'lib/nokogiri/xml/entity_reference.rb', line 14

def inspect_attributes
  [:name]
end