Archief - XML namespaces

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

holycrap007

Legacy Member
Om XML in te laden:

<script type="text/javascript">
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else // Internet Explorer 5/6
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET","note.xml",false);
xhttp.send("");
xmlDoc=xhttp.responseXML;



document.getElementById("title").innerHTML=xmlDoc.getElementsByTagName('h:title')[0].childNodes[0].nodeValue;
document.getElementById("content_home").innerHTML=xmlDoc.getElementsByTagName('h:body')[0].childNodes[0].nodeValue;



</script>



getElementsByTagName('h:title') werkt niet,
getElementsByTagName('title') werkt wel.

In mijn xml staat het volgende

<?xml version="1.0" encoding="utf-8"?>
<root
xmlns:h=”http://www.w3.org/TR/html4/”
xmlns:g=”Jurgen Dedeckere - LinkedIn >

<h:content>
<h:title>Home</h:title>
<h:body>This is my homepage</h:body>
</h:content>

<g:content>
<g:title>Gallery</g:title>
<g:body>This is my gallery</g:body>
</g:content>
</root>


Enig idee wat hier aan de hand is?

phil_r

Legacy Member
je moet ook dit gebruiken denk ik:
getElementsByTagNameNS("http://www.w3.org/TR/html4/","h")

vervolgens heb je een node tree waar je "title" ergens inzit, dan vind je het wel ;-)

holycrap007

Legacy Member
en waar moet da lijntje juist staan?

ik ben hier niet goed in, dus een stukje code als voorbeeld zou handig zijn

phil_r

Legacy Member
Hier:
Code:
var nodes = xmlDoc.getElementsByTagNameNS("http://www.w3.org/TR/html4/","h");

document.getElementById("title").innerHTML= nodes[0].childNodes[0].childNodes[0].nodeValue;

Het kan zijn dat "nodes[0].childNodes[0].childNodes[0].nodeValue;" nog niet diep genoeg is in de nodes-tree.

Het ding is dat je dus een lijst hebt met alle elementen uit de namespace 'h' en daaruit dan je title element haalt, of gewoon zoals je deed getElementByTagName de title halen is eigenlijk nog makkelijker

Jerre Muesli

Legacy Member
parse gewoon u xml met xslt. Veel simpeler dan met zaken als nodes[0].childNodes[0].childNodes[0].nodeValue te beginnen

Jerre Muesli

Legacy Member
install firefox + firebug en doe een console.log(xmlDoc. getElementsByTagName('h:title'));
dan kunt ge in het object zoeken naar wat ge nodig hebt

phil_r

Legacy Member
holycrap007 zei:
nog steeds zelfde probleem, div 1 werkt, div 2 niet

je hebt toch niks over een div gezegt? :s
In ieder geval als je een div hebt zoals dit:
<div id="h:title">
weet ik niet of javascript dat met : kan verwerken
Het is af te raden dat te doen.

Voor in je xml, voor namespaces mag het uiteraart wel,
of in html gelijk dit <h:div> maar ik neem aan dat je het html schema niet gaat aanpassen :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan