Class: Nokogiri::XML::CDATA

Inherits:
Text show all
Defined in:
lib/nokogiri/xml/cdata.rb,
ext/nokogiri/xml_cdata.c

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Text

#content=

Methods included from PP::CharacterData

#inspect, #pretty_print

Class Method Details

.new(document, content) ⇒ Object

Create a new CDATA element on the document with content

If content cannot be implicitly converted to a string, this method will raise a TypeError exception.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'ext/nokogiri/xml_cdata.c', line 14

static VALUE
new (int argc, VALUE *argv, VALUE klass)
{
  xmlDocPtr xml_doc;
  xmlNodePtr node;
  VALUE doc;
  VALUE content;
  VALUE rest;
  VALUE rb_node;
  xmlChar *content_str = NULL;
  int content_str_len = 0;

  rb_scan_args(argc, argv, "2*", &doc, &content, &rest);

  Data_Get_Struct(doc, xmlDoc, xml_doc);

  if (!NIL_P(content)) {
    content_str = (xmlChar *)StringValuePtr(content);
    content_str_len = RSTRING_LEN(content);
  }

  node = xmlNewCDataBlock(xml_doc->doc, content_str, content_str_len);

  noko_xml_document_pin_node(node);

  rb_node = noko_xml_node_wrap(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

#nameObject

Get the name of this CDATA node



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

def name
  '#cdata-section'
end