In REXML, is it possible to add raw tags to element text, without having to add elements for those tags?
(I would like to add a few HTML tags like <b></b> to strings, before I know what element nodes they will appear at.)
Are you wanting to ad XML elements as children of another without
using the DOM to create them (like setting .innerHTML in a web
browser, causing it to parse your string and create elements as
necessary),
or are you wanting to set the contents of a text node to have
characters that look like XML tags, but have it automatically escape
them for you?
···
On Nov 23, 2:26 pm, Jari Williamsson <jari.williams...@mailbox.swipnet.se> wrote:
In REXML, is it possible to add raw tags to element text, without having
to add elements for those tags?
(I would like to add a few HTML tags like <b></b> to strings, before I
know what element nodes they will appear at.)
On Nov 23, 2:26 pm, Jari Williamsson > <jari.williams...@mailbox.swipnet.se> wrote:
In REXML, is it possible to add raw tags to element text, without having
to add elements for those tags?
(I would like to add a few HTML tags like <b></b> to strings, before I
know what element nodes they will appear at.)
Are you wanting to ad XML elements as children of another without
using the DOM to create them (like setting .innerHTML in a web
browser, causing it to parse your string and create elements as
necessary),
I believe you can do it (i.e. add raw tags to text) BUT they will not
show up as tags when output. Which is completely logical once you
think about it. If you work with a DOM you have to add nodes as
nodes. Maybe you can just create a small sub tree with a <b> node and
your text as nested text and later put that <b> node into the tree.
Kind regards
robert
···
2007/11/24, Jari Williamsson <jari.williamsson@mailbox.swipnet.se>:
Phrogz wrote:
> On Nov 23, 2:26 pm, Jari Williamsson > > <jari.williams...@mailbox.swipnet.se> wrote:
>> In REXML, is it possible to add raw tags to element text, without having
>> to add elements for those tags?
>> (I would like to add a few HTML tags like <b></b> to strings, before I
>> know what element nodes they will appear at.)
>
> Are you wanting to ad XML elements as children of another without
> using the DOM to create them (like setting .innerHTML in a web
> browser, causing it to parse your string and create elements as
> necessary),
Yes, this is what I want.
--
use.inject do |as, often| as.you_can - without end
2007/11/24, Jari Williamsson <jari.williamsson@mailbox.swipnet.se>:
Phrogz wrote:
On Nov 23, 2:26 pm, Jari Williamsson >>> <jari.williams...@mailbox.swipnet.se> wrote:
In REXML, is it possible to add raw tags to element text, without having
to add elements for those tags?
(I would like to add a few HTML tags like <b></b> to strings, before I
know what element nodes they will appear at.)
Are you wanting to ad XML elements as children of another without
using the DOM to create them (like setting .innerHTML in a web
browser, causing it to parse your string and create elements as
necessary),
Yes, this is what I want.
I believe you can do it (i.e. add raw tags to text) BUT they will not
show up as tags when output. Which is completely logical once you
think about it. If you work with a DOM you have to add nodes as
nodes. Maybe you can just create a small sub tree with a <b> node and
your text as nested text and later put that <b> node into the tree.
Since nothing seems to exist I wrote my own 2-line method: It adds a raw string, parses it and passes all nodes to the parent element. Here's the code if anyone else would need it:
---
class REXML::Element
def add_raw_text(raw_text)
doc = REXML::Document.new("<fake>"+raw_text+"</fake>")
doc.root.children.each { |e| self << e }
end
end
---
Example:
myelement.add_raw_text("here's a <b>bold</b> test")