By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,251 Members | 1,656 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,251 IT Pros & Developers. It's quick & easy.

help with extracting nodes and their children as text

P: n/a
I'm loading an xml data file and then trying to take a particular node
and add it, as html, to an element on my page using inner HTML. The
xml is like what is below, with the ... representing eliminated
detail:

<?xml version="1.0" encoding="iso-8859-1"?>
<table>
<descriptions>
<fielddesc id="1">
...
</fielddesc>
...
</descriptions>
<recordset>
<record id="1">
<field id="1">1</field>
<field id="2">Hydrogen</field>
<field id="3">H</field>
<field id="4">[not applicable]</field>
<field id="5">[not applicable]</field>
<field id="6">[not applicable]</field>
<field id="7">1s<sup>1</sup></field>
</record>
...
</recordset>
</table>

The problem comes with id 7 above. I want to get everything that is
contained in that field and use it in my page so that the <sup> html
tag is used. Here are some things I've tried:

recordset = table.getElementsByTagName('recordset')[0].getElementsByTagName('record');
valueIwant = recordset[1].getElementsByTagName('field')[7].firstChild.data;
(This only gets everything up to the <sip> tag)

recordset = table.getElementsByTagName('recordset')[0].getElementsByTagName('record');
valueIwant = recordset[1].getElementsByTagName('field')[7].text;
(This only works on IE and it doesn't format the contents in the <sup>
tag)

Anybody have some suggestions on how to do what I want?

Thanks,
Rob
Jul 20 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
Am I missing something? You write: valueIwant = recordset[1] ...
('field')[7] ...

Shouldn't that be recordset[0] and ...('field')[6] ?

recordset =
table.getElementsByTagName('recordset')[0].getElementsByTagName('record');
valueIwant = recordset[1].getElementsByTagName('field')[7].firstChild.data; (This only gets everything up to the <sip> tag)

recordset = table.getElementsByTagName('recordset')[0].getElementsByTagName('record'); valueIwant = recordset[1].getElementsByTagName('field')[7].text;
(This only works on IE and it doesn't format the contents in the <sup>
tag)


Jul 20 '05 #2

P: n/a


Robert Fentress wrote:
I'm loading an xml data file and then trying to take a particular node
and add it, as html, to an element on my page using inner HTML. The
xml is like what is below, with the ... representing eliminated
detail:

<?xml version="1.0" encoding="iso-8859-1"?>
<table>
<descriptions>
<fielddesc id="1">
...
</fielddesc>
...
</descriptions>
<recordset>
<record id="1">
<field id="1">1</field>
<field id="2">Hydrogen</field>
<field id="3">H</field>
<field id="4">[not applicable]</field>
<field id="5">[not applicable]</field>
<field id="6">[not applicable]</field>
<field id="7">1s<sup>1</sup></field>
</record>
...
</recordset>
</table>

The problem comes with id 7 above. I want to get everything that is
contained in that field and use it in my page so that the <sup> html
tag is used. Here are some things I've tried:

recordset = table.getElementsByTagName('recordset')[0].getElementsByTagName('record');
valueIwant = recordset[1].getElementsByTagName('field')[7].firstChild.data;
(This only gets everything up to the <sip> tag)

recordset = table.getElementsByTagName('recordset')[0].getElementsByTagName('record');
valueIwant = recordset[1].getElementsByTagName('field')[7].text;
(This only works on IE and it doesn't format the contents in the <sup>
tag)

Anybody have some suggestions on how to do what I want?


Well, an XML element with tagname sup is not an HTML element, if you
target XHTML you would need
<sup xmlns="http://www.w3.org/1999/xhtml">...</sup>
that way a browser like Mozilla would allow you to import that node from
the XML document into an XHTML document:
http://home.arcor.de/martin.honnen/j...20040206.xhtml

IE however doesn't understand XHTML and doesn't support importNode so
there you are better off trying to insert some snippet of markup using
insertAdjacentHTML or innerHTML. XSLT transformations might be a way
with IE to create that snippet of HTML markup from your XML.
--

Martin Honnen
http://JavaScript.FAQTs.com/

Jul 20 '05 #3

P: n/a
Antenna <q1****************@hotmail.com> wrote in message news:<c0**********@news.worldonline.be>...
Am I missing something? You write: valueIwant = recordset[1] ...
('field')[7] ...

Shouldn't that be recordset[0] and ...('field')[6] ?


Yes. I realized that after I sent it. Doesn't affect the issue though.

Rob
Jul 20 '05 #4

P: n/a
Martin Honnen <ma*******@yahoo.de> wrote in message news:<40********@olaf.komtel.net>...
Well, an XML element with tagname sup is not an HTML element, if you
target XHTML you would need
<sup xmlns="http://www.w3.org/1999/xhtml">...</sup>
that way a browser like Mozilla would allow you to import that node from
the XML document into an XHTML document:
http://home.arcor.de/martin.honnen/j...20040206.xhtml

IE however doesn't understand XHTML and doesn't support importNode so
there you are better off trying to insert some snippet of markup using
insertAdjacentHTML or innerHTML. XSLT transformations might be a way
with IE to create that snippet of HTML markup from your XML.


Thanks for your help Martin. I'll try to do some research on XSLT so
I can get it to work on IE too.

Rob
Jul 20 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.