Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > XML > Question about createTextNode in xml files

Reply
Thread Tools

Question about createTextNode in xml files

 
 
Danny
Guest
Posts: n/a
 
      06-14-2005

A text node is just that, a text node, NOT an ELEMENT node, <b> is an
element node, you've have to
s=document.createElement('b').appenChild(document. createTextNode('STUFF
HERE')); or, as suggested already, use .innerHTML, text nodes is just the
string, no formatting, just text/plain, .innerHTML is a defacto standard
property which does take html as data, works fine, and you do need to
escape reserved chars s.innerHTML='<b> GRASS ISN\'T YELLOW<\/b>';


Danny


On Wed, 15 Jun 2005 17:18:14 -0700, RobG <(E-Mail Removed)> wrote:

> DKM wrote:
>> RobG wrote:
>>
>>> DKM wrote:
>>>
>>>> I have an empty tag like <p id="pid"></p> in a xml file. And, I have a
>>>> script as foolows:
>>>>
>>>> str = "<b>Hello World!!!</b>";
>>>> ele = documeny.getElementById("pid");
>>>> ele.appendChild(document.createTextNode(str));
>>>
>>> This will create a text node with a value of the literal string
>>> "<b>Hello World!!!</b>".
>>>
>>> If you are expecting an HTML <B> element containing the text "Hello
>>> World!!!" then you need to create the B element and put the text
>>> inside
>>> it:

> [...]
>> I was doing that from inside a java applet, but due to buggy nature of
>> LiveConenct, I am creating a html formated string in the java applet
>> and passing it to javascript. That has been working robustly without
>> any crash. Now, the problem is to insert that html formatted string
>> into the document.
>> Any idea as to how one can dynamically insert a long and compleex html
>> formated string into the document?
>>

>
> Then I guess you're stuck with innerHTML, but be aware that it is not
> part of the W3C DOM.
>
>>
>>> <input type="button" value="Add 'Hello World'" onclick="
>>> sayHelloWorld();
>>> ">
>>> <div id="pid"></div>
>>>

>
> <input type="button" value="Add 'Hello World'" onclick="
>
> var s = '<b>Hello World!!!</b>';
> document.getElementById('pid').innerHTML = s;
>
> ">
> <div id="pid"></div>
>
>
>
>
>




--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
 
Reply With Quote
 
 
 
 
DKM
Guest
Posts: n/a
 
      06-15-2005
I have an empty tag like <p id="pid"></p> in a xml file. And, I have a
script as foolows:

str = "<b>Hello World!!!</b>";
ele = documeny.getElementById("pid");
ele.appendChild(document.createTextNode(str));

I expected to see "Hello World!!!" in bold letters, but instead I see
"<b>Hello World!!!</b>".

I tried replacing / with \/, but that did not help. Then I tried
replacing < with & lt ; and > with & gt ;, but that did not work, then
I tried replacing < with \u 003e and > with \u 003c, but that did not
work too. The exact string is being displayed instead of "Hello
World!!!" in bold letters.

There is no problem with html files. Both FireFox and IE display in
bold letters.

Any tip will be appreciated.

Thanks very much in advance.

D.K. Mishra

 
Reply With Quote
 
 
 
 
RobG
Guest
Posts: n/a
 
      06-15-2005
DKM wrote:
> I have an empty tag like <p id="pid"></p> in a xml file. And, I have a
> script as foolows:
>
> str = "<b>Hello World!!!</b>";
> ele = documeny.getElementById("pid");
> ele.appendChild(document.createTextNode(str));


This will create a text node with a value of the literal string
"<b>Hello World!!!</b>".

If you are expecting an HTML <B> element containing the text "Hello
World!!!" then you need to create the B element and put the text inside
it:

<script type="text/javascript">
function sayHelloWorld(){
var str = 'Hello World!!!';
var ele = document.getElementById('pid');
var b = document.createElement('B');
b.appendChild(document.createTextNode(str));
ele.appendChild(b);
}
</script>
<input type="button" value="Add 'Hello World'" onclick="
sayHelloWorld();
">
<div id="pid"></div>

[...]

--
Rob
 
Reply With Quote
 
DKM
Guest
Posts: n/a
 
      06-15-2005


RobG wrote:
> DKM wrote:
> > I have an empty tag like <p id="pid"></p> in a xml file. And, I have a
> > script as foolows:
> >
> > str = "<b>Hello World!!!</b>";
> > ele = documeny.getElementById("pid");
> > ele.appendChild(document.createTextNode(str));

>
> This will create a text node with a value of the literal string
> "<b>Hello World!!!</b>".
>
> If you are expecting an HTML <B> element containing the text "Hello
> World!!!" then you need to create the B element and put the text inside
> it:
>
> <script type="text/javascript">
> function sayHelloWorld(){
> var str = 'Hello World!!!';
> var ele = document.getElementById('pid');
> var b = document.createElement('B');
> b.appendChild(document.createTextNode(str));
> ele.appendChild(b);
> }
> </script>


I was doing that from inside a java applet, but due to buggy nature of
LiveConenct, I am creating a html formated string in the java applet
and passing it to javascript. That has been working robustly without
any crash. Now, the problem is to insert that html formatted string
into the document.

Any idea as to how one can dynamically insert a long and compleex html
formated string into the document?

Thanks very much in advance.

D.K. Mishra



> <input type="button" value="Add 'Hello World'" onclick="
> sayHelloWorld();
> ">
> <div id="pid"></div>
>
> [...]
>
> --
> Rob


 
Reply With Quote
 
RobG
Guest
Posts: n/a
 
      06-16-2005
DKM wrote:
>
> RobG wrote:
>
>>DKM wrote:
>>
>>>I have an empty tag like <p id="pid"></p> in a xml file. And, I have a
>>>script as foolows:
>>>
>>>str = "<b>Hello World!!!</b>";
>>>ele = documeny.getElementById("pid");
>>>ele.appendChild(document.createTextNode(str)) ;

>>
>> This will create a text node with a value of the literal string
>> "<b>Hello World!!!</b>".
>>
>> If you are expecting an HTML <B> element containing the text "Hello
>> World!!!" then you need to create the B element and put the text inside
>> it:

[...]
> I was doing that from inside a java applet, but due to buggy nature of
> LiveConenct, I am creating a html formated string in the java applet
> and passing it to javascript. That has been working robustly without
> any crash. Now, the problem is to insert that html formatted string
> into the document.
>
> Any idea as to how one can dynamically insert a long and compleex html
> formated string into the document?
>


Then I guess you're stuck with innerHTML, but be aware that it is not
part of the W3C DOM.

>
>><input type="button" value="Add 'Hello World'" onclick="
>> sayHelloWorld();
>> ">
>><div id="pid"></div>
>>


<input type="button" value="Add 'Hello World'" onclick="

var s = '<b>Hello World!!!</b>';
document.getElementById('pid').innerHTML = s;

">
<div id="pid"></div>





--
Rob
 
Reply With Quote
 
DKM
Guest
Posts: n/a
 
      06-16-2005


RobG wrote:
> DKM wrote:
> >
> > RobG wrote:
> >
> >>DKM wrote:
> >>
> >>>I have an empty tag like <p id="pid"></p> in a xml file. And, I have a
> >>>script as foolows:
> >>>
> >>>str = "<b>Hello World!!!</b>";
> >>>ele = documeny.getElementById("pid");
> >>>ele.appendChild(document.createTextNode(str)) ;
> >>
> >> This will create a text node with a value of the literal string
> >> "<b>Hello World!!!</b>".
> >>
> >> If you are expecting an HTML <B> element containing the text "Hello
> >> World!!!" then you need to create the B element and put the text inside
> >> it:

> [...]
> > I was doing that from inside a java applet, but due to buggy nature of
> > LiveConenct, I am creating a html formated string in the java applet
> > and passing it to javascript. That has been working robustly without
> > any crash. Now, the problem is to insert that html formatted string
> > into the document.
> >
> > Any idea as to how one can dynamically insert a long and compleex html
> > formated string into the document?
> >

>
> Then I guess you're stuck with innerHTML, but be aware that it is not
> part of the W3C DOM.


Its an xhtml application in a xml file, and innerHTML does not work in
xml. I think IE treats xhtml file as html file and I can use innerHTML
in IE and have the desired result. However, FireFox errors out on
innerHTML.

I was thinking how hard will it be to create a function that would take
a formatted html string and create a document fragment out of it by
calling standard DOM functions like createElement, appendChild and
such. I bet a lot of folks must have thought about that and may have
created such a function.

What is that MSXML parser that one uses in IE? Is there such a beast
for FireFox? Could that be used to "parse" the html formated string
into a valid xml document?

Thanks very much in advance.

D.K. Mishra

>
> >
> >><input type="button" value="Add 'Hello World'" onclick="
> >> sayHelloWorld();
> >> ">
> >><div id="pid"></div>
> >>

>
> <input type="button" value="Add 'Hello World'" onclick="
>
> var s = '<b>Hello World!!!</b>';
> document.getElementById('pid').innerHTML = s;
>
> ">
> <div id="pid"></div>
>
>
>
>
>
> --
> Rob


 
Reply With Quote
 
Andy Dingley
Guest
Posts: n/a
 
      06-16-2005
On 15 Jun 2005 16:51:56 -0700, "DKM" <(E-Mail Removed)>
wrote:

>Any idea as to how one can dynamically insert a long and compleex html
>formated string into the document?


A "compleex html formated string" might be HTML, but that doesn't mean
it's a well-formed XML fragment. Your string _must_ also be a balanced
well-formed XML fragment to work with it like this - if it's coming from
an external source, you might not be able to guarantee this (this is a
problem for HTML-transporting XML protocols like RSS)


To try and solve your immediate problem though, create a new, empty XML
document as an object in your script, then use the .load() method to
load and parse the string you have (yes, it's a slow parsing operation -
no way to avoid it). Then copy this new fragment into the main DOM
document.
 
Reply With Quote
 
Dag Sunde
Guest
Posts: n/a
 
      06-16-2005
"DKM" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) ups.com...
>
>
> RobG wrote:
> > DKM wrote:
> > > I have an empty tag like <p id="pid"></p> in a xml file. And, I have a
> > > script as foolows:
> > >
> > > str = "<b>Hello World!!!</b>";
> > > ele = documeny.getElementById("pid");
> > > ele.appendChild(document.createTextNode(str));

> >
> > This will create a text node with a value of the literal string
> > "<b>Hello World!!!</b>".
> >
> > If you are expecting an HTML <B> element containing the text "Hello
> > World!!!" then you need to create the B element and put the text

inside
> > it:
> >
> > <script type="text/javascript">
> > function sayHelloWorld(){
> > var str = 'Hello World!!!';
> > var ele = document.getElementById('pid');
> > var b = document.createElement('B');
> > b.appendChild(document.createTextNode(str));
> > ele.appendChild(b);
> > }
> > </script>

>
> I was doing that from inside a java applet, but due to buggy nature of
> LiveConenct, I am creating a html formated string in the java applet
> and passing it to javascript. That has been working robustly without
> any crash. Now, the problem is to insert that html formatted string
> into the document.
>
> Any idea as to how one can dynamically insert a long and compleex html
> formated string into the document?
>
> Thanks very much in advance.


Rob's code should work, but not with an uppercase <B>, an long as you are
using xhtml. All html-tags in XHtml are *lowercase*.
Maybe thats your problem?

--
Dag.


 
Reply With Quote
 
DKM
Guest
Posts: n/a
 
      06-17-2005


Dag Sunde wrote:
> "DKM" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed) ups.com...
> >
> >
> > RobG wrote:
> > > DKM wrote:
> > > > I have an empty tag like <p id="pid"></p> in a xml file. And, I have a
> > > > script as foolows:
> > > >
> > > > str = "<b>Hello World!!!</b>";
> > > > ele = documeny.getElementById("pid");
> > > > ele.appendChild(document.createTextNode(str));
> > >
> > > This will create a text node with a value of the literal string
> > > "<b>Hello World!!!</b>".
> > >
> > > If you are expecting an HTML <B> element containing the text "Hello
> > > World!!!" then you need to create the B element and put the text

> inside
> > > it:
> > >
> > > <script type="text/javascript">
> > > function sayHelloWorld(){
> > > var str = 'Hello World!!!';
> > > var ele = document.getElementById('pid');
> > > var b = document.createElement('B');
> > > b.appendChild(document.createTextNode(str));
> > > ele.appendChild(b);
> > > }
> > > </script>

> >
> > I was doing that from inside a java applet, but due to buggy nature of
> > LiveConenct, I am creating a html formated string in the java applet
> > and passing it to javascript. That has been working robustly without
> > any crash. Now, the problem is to insert that html formatted string
> > into the document.
> >
> > Any idea as to how one can dynamically insert a long and compleex html
> > formated string into the document?
> >
> > Thanks very much in advance.

>
> Rob's code should work, but not with an uppercase <B>, an long as you are
> using xhtml. All html-tags in XHtml are *lowercase*.
> Maybe thats your problem?



Thank you to everyone. I have now figured a solution to the problem.
Instead of inserting the string as a textNode, what I am doing now is
parsing the string into a document and appending the documentElement of
the document as follows:

str = "<b>Hello World!!!</b>";
doc = new DOMParser().parseFromString(str, "text/xml");
tmpEle = doc.DocumentElement;
ele.appendChild(tmpEle);

earlier I was doing the following:

str = "<b>Hello World!!!</b>";
tmpEle = document.createTextNode(str);
ele.appendChild(tmpEle);

The above works fine in FireFix 1.0.4 where I was unable to set the
innerHTML. I suppose I will use the Microsoft's XML parser instead of
the DOMParser to achive the same, but fortunately, ele.innerHTMl = str
does it for IE 6.0.

Again, thanks to all.

D.K. Mishra



>
> --
> Dag.


 
Reply With Quote
 
HALLES
Guest
Posts: n/a
 
      06-22-2005
HELLO
Why don't use a program using a compiler and writing files to do so ?

Java Javascript Xml Html ......

Where is the goo ole time of Turbo Pascal 6 and 7 ?
I could even acces dBASE files in write append rewrite and so on, with
Turbo Pascal ....

Regards.

HALLES

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: DOM CreateTextNode with Unicode Thomas 'PointedEars' Lahn XML 0 03-01-2008 12:27 PM
Re: DOM CreateTextNode with Unicode Martin Honnen XML 0 02-29-2008 12:47 PM
newbie: createTextNode & Div Jeff Javascript 2 11-15-2005 09:13 PM
Question about createTextNode in xml files DKM Javascript 10 06-23-2005 10:15 PM
When using Xerces, how can I validate the text in createTextNode() Avi U XML 2 01-13-2004 06:16 PM



Advertisments