Class: REXML::CData

Inherits:
Text show all
Defined in:
lib/rexml/cdata.rb

Constant Summary collapse

START =
'<![CDATA['
STOP =
']]>'
ILLEGAL =
/(\]\]>)/

Constants inherited from Text

Text::EREFERENCE, Text::NUMERICENTITY, Text::REFERENCE, Text::SETUTITSBUS, Text::SLAICEPS, Text::SPECIALS, Text::SUBSTITUTES

Instance Attribute Summary

Attributes inherited from Text

#raw

Attributes inherited from Child

#parent

Instance Method Summary collapse

Methods inherited from Text

#<<, #<=>, #empty?, #indent_text, #inspect, #node_type, normalize, read_with_substitution, unnormalize, #value=, #wrap, #write_with_substitution, #xpath

Methods inherited from Child

#bytes, #document, #next_sibling=, #previous_sibling=, #remove, #replace_with

Methods included from Node

#each_recursive, #find_first_recursive, #indent, #index_in_parent, #next_sibling_node, #parent?, #previous_sibling_node

Constructor Details

#initialize(first, whitespace = true, parent = nil) ⇒ CData

Constructor. CData is data between

Examples CData.new( source ) CData.new( "Here is some CDATA" ) CData.new( "Some unprocessed data", respect_whitespace_TF, parent_element )



15
16
17
# File 'lib/rexml/cdata.rb', line 15

def initialize( first, whitespace=true, parent=nil )
	super( first, whitespace, parent, true, true, ILLEGAL )
end

Instance Method Details

#cloneObject

Make a copy of this object

Examples c = CData.new( "Some text" ) d = c.clone d.to_s # -> "Some text"



25
26
27
# File 'lib/rexml/cdata.rb', line 25

def clone
	CData.new self
end

#to_sObject

Returns the content of this CData object

Examples c = CData.new( "Some text" ) c.to_s # -> "Some text"



34
35
36
# File 'lib/rexml/cdata.rb', line 34

def to_s
	@string
end

#valueObject



38
39
40
# File 'lib/rexml/cdata.rb', line 38

def value
  @string
end

#write(output = $stdout, indent = -1,, transitive = false, ie_hack = false) ⇒ Object

Generates XML output of this object

output

Where to write the string. Defaults to $stdout

indent

An integer. If -1, no indenting will be used; otherwise, the indentation will be this number of spaces, and children will be indented an additional amount. Defaults to -1.

transitive

If transitive is true and indent is >= 0, then the output will be pretty-printed in such a way that the added whitespace does not affect the absolute value of the document -- that is, it leaves the value and number of Text nodes in the document unchanged.

ie_hack

Internet Explorer is the worst piece of crap to have ever been written, with the possible exception of Windows itself. Since IE is unable to parse proper XML, we have to provide a hack to generate XML that IE's limited abilities can handle. This hack inserts a space before the /> on empty tags.

Examples c = CData.new( " Some text " ) c.write( $stdout ) #->



65
66
67
68
69
70
# File 'lib/rexml/cdata.rb', line 65

def write( output=$stdout, indent=-1, transitive=false, ie_hack=false )
    #indent( output, indent ) unless transitive
	output << START
	output << @string
	output << STOP
end