XML Datei Laden

slyer

Grünschnabel
Ich möchte gerne eine XML Date laden und diese dann verarbeiten. Leider klappt das nicht so ganz und ich weiß auch nicht wie ich überprüfen kann, ob die Datei überhaupt geladen wurde.

Hier ist mal der Code:

HTML:
function tipp(){

var xmlDoc = document.implementation.createDocument("","",null);
xmlDoc.load("test.xml");
xmlDoc.addEventListener("load", init, false); 

var vornameNode = xmlDoc.getElementsByTagName("name")[0];
var vornameTextNode = vornameNode.childNodes[0];
var vorname = vornameTextNode.nodeValue;

document.getElementById("ac").style.display="";
document.getElementById("ac_1").firstChild.nodeValue=vorname;

}


Hier ist die test.xml

HTML:
<?xml version='1.0' encoding='utf-8'?><xml id="users">

    

<user>
<name>Hanz Musterman</name>
<email>mein.namei@gmx.net</email>
</user>

	
</xml>

Wie man sieht, sollte dort die XML Datei geladen werden und dann der Inhalt von "name" in "ac_1" ausgegeben werden.

Vielleicht könnt ihr mir helfen.
 
Aus deinem Code ist nicht ersichtlich, wie/wann du das Ganze abarbeitest...entscheidend ist auf jeden Fall der Ladestatus des XML-Dokumentes.
Hir mal nen Bsp., welches funktioniert:
Code:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
function init()
{
  var vornameNode = xmlDoc.getElementsByTagName("name")[0];
  var vornameTextNode = vornameNode.childNodes[0];
  var vorname = vornameTextNode.nodeValue;
  document.getElementById("ac").style.display="";
  document.getElementById("ac_1").firstChild.nodeValue=vorname;
}

window.onload=function()
{
  xmlDoc = document.implementation.createDocument("","",null);
  xmlDoc.load("test.xml");
  xmlDoc.addEventListener("load", init, false); 
}
//-->
</script>
</head>
<body>
<p id="ac">x</p>
<p id="ac_1">x</p>
</body>
</html>
Beachte, dass das Ganze so nicht im IE funktioniert...wie es dort geht, steht hier:http://msdn.microsoft.com/en-us/library/ms762722(VS.85).aspx
 
Meine nächste Frage:

Wenn ich die XML Datei wie folgt aufbaue geht alles wunderbar.

HTML:
<?xml version='1.0' encoding='utf-8'?>
<xml id="users">
   <user>
<name>Name</name>
<email>Email</email>
   </user>
</xml>

Wenn ich aber nun die XML Datei erst über ne DB generieren lasse, geht nichts mehr,

PHP:
<?php
include('../includes/functions.php');
include('../includes/db.php');

$sql = "SELECT * FROM user WHERE name = 'marquies'";
$query = mysql_query($sql);
echo "<?xml version='1.0' encoding='utf-8'?>";

?>
<xml id="users">

    <?php
    while($theData = mysql_fetch_array($query)) {
        echo("

<user>
<name>".$theData["register_name"]."</name>
<email>".$theData["register_email"]."</email>
</user>
	");
    }
    ?>
</xml>

Die Datei heißt natürlich test.xml.php und wenn ich sie einzelnd aufrufe, funktioniert alles einwandfrei.
 
Mal vorrausgesetzt, bei dir sind die PHP-shorttags verboten(rufe die test.xml.php mal einzeln auf, und prüfe ob da alles so aussieht, wie du es vorhast)...solltest du noch einen entsprechenden Content-Type-Header senden, welcher die Ausgabe des PHP-Skriptes als bspw. text/xml deklariert.
 
Zurück