Entity Substituter : rexml « XML « Ruby






Entity Substituter



require 'delegate'
require 'rexml/text'
require 'rexml/document'

class EntitySubstituter < DelegateClass(IO)
  def initialize(io, document, filter=nil)
    @document = document
    @filter = filter
    super(io)
  end

  def <<(s)
    super(REXML::Text::unnormalize(s, @document.doctype, @filter))
  end
end


str = %{<?xml version="1.0"?>
<!DOCTYPE doc [
 <!ENTITY product 'Stargaze'>
 <!ENTITY version '2.3'>
]>
<doc>
 &product; v&version; 
</doc>}
doc = REXML::Document.new str
output = EntitySubstituter.new($stdout, doc)
doc.write(output)

 








Related examples in the same category

1.REXML is already part of Ruby, you get it free of charge.
2.A basic demonstration of parsing an XML file looking for certain elements:
3.Use rexml to read xml file
4.Checking XML Well-Formedness
5.Get the first element under root
6.Output xml with REXML
7.Extracting Data While Parsing a Document
8.get a Node from xml document
9.Extracting Data From a Document's Tree Structure
10.Assign new value to node
11.Creating and Modifying XML Documents
12.Add new element
13.Compressing Whitespace in an XML Document
14.Compress whitespace only in anchor
15.Leave whitespace for anchor
16.Compress new line character
17.require 'rexml/document'