webForumDet fria alternativet

xml, dom och treeview

JavaScriptur Javascript

3 svar · 280 visningar · startad av monAmour

monAmourMedlem sedan dec. 2002258 inlägg
#1

Har suittit och studerat msdn library och deras stöd för att läsa xml med javascript och visa som en filhanterare med
"treeview" funktionerna..
Är inte så duktig på javascript så jag tänkte höra om det är någon som kan knåpa ett script eller kanske har ett färdigt.. om inte annat kan någon duktig visa hur man extraherar datan från xml till html dokument med javascipt o dom

Har ett xml dokument som ser ut så här:

<?xml version="1.0"?>
<catalogue>
  <product>
	<category>Jeans</category>
	<brand>Levis</brand>
	<name>701</name>
	<price>799</price>
  </product>
  <product>
    <category>Jeans</category>
	<brand>Levis</brand>
	<name>703</name>
	<price>699</price>
  </product>
  <product>
    <category>Accessories</category>
	<brand>Levis</brand>
	<name>Murry Wallet</name>
	<price>399</price>
  </product>
  <product>
    <category>Jeans</category>
	<brand>Diesel</brand>
	<name>Kulter</name>
	<price>899</price>
  </product>
  <product>
    <category>Accessories</category>
	<brand>Prada</brand>
	<name>Lether bag</name>
	<price>1250</price>
  </product>
</catalogue>

Tack på förhand!

Peter SMedlem sedan dec. 20025 483 inlägg
#2

Ett exempel på hur du kan extrahera data från XML-dokumentet:

<script type="text/javascript">
<!--

function g(){
	if(!typeof(ActiveXObject)=="function"){
		return 0;
	}

	var f=new ActiveXObject("Microsoft.XMLDOM");
	f.load("foo.xml");
	f.async=false;

	var
		n=document.getElementById("tree"),
		e=f.getElementsByTagName("product"),
		i=e.length;

	for(var j=0; j < i; j++){
		if(e[j].hasChildNodes()){
			var k=0,m;

			while(m=e[j].childNodes[k++]){
				n.appendChild({
					f: function(o){
						o.innerHTML=m.text;
						return o;
					}
				}['f'](document.createElement("div")));
			}
			n.appendChild(document.createElement("br"));
		}
	}
};

window.onload=function(){
	g();
};

//-->
</script>

<div id="tree"></div>

Notera att XML-filen i exemplet ovan heter foo.xml.

:)

DarrenMedlem sedan dec. 2002789 inlägg
#3

Observera att Peters exempel endast fungerar i IE.

Ladda ner denna filen http://www.webforum.nu/showthread.php?s=&postid=609615#post609615 så får du ett "crossbrowser" javascript XML parser.

Sedan kan du kombinera Peters exempel med exemplet du hittar i zip-filen för bästa resultat.

monAmourMedlem sedan dec. 2002258 inlägg
#4

Super! tack så mycket!

135 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)