Existe-t-il un moyen simple de faire cela en PHP ? Comment prendre du texte brut, formaté en XML, dans la zone de texte d'un formulaire et faire en sorte que PHP le prenne en compte en tant que XML ? Je peux trouver comment parcourir l'arbre après qu'il soit un objet XML.
Je viens d'essayer la technique de Richsage sur cet échantillon xml :
<?xml version="1.0"?>
<videocollection>
<title id="1">Tootsie</title>
<genre>comedy</genre>
<year>1982</year>
<language>English</language>
<cast>Dustin Hoffman</cast>
<cast>Jessica Lang</cast>
<cast>Teri Gar</cast>
<cast>Sydney Pollak</cast>
<crew>
<director>Sydney Pollak</director>
</crew>
<title id="2">Jurassic Park</title>
<genre>science fiction</genre>
<year>1993</year>
<language>English</language>
<cast>Sam Neil</cast>
<cast>Laura Dern</cast>
<cast>Jeff Goldblum</cast>
<crew>
<director>Steven Spielberg</director>
</crew>
<title id="3">Mission Impossible</title>
<genre>action</genre>
<year>1996</year>
<language>English</language>
<cast>Tom Cruise</cast>
<cast>Jon Voight</cast>
<cast>Emmanuelle Beart</cast>
<cast>Jean Reno</cast>
<crew>
<director>Brian de Palma</director>
</crew>
</videocollection>
Voici mon code :
<html>
<head><title></title></head>
<body>
</body>
<?php
echo $_SERVER['PHP_SELF'];
$in_xml=$_POST['in_xml'];
if ($in_xml) {
print "We got it!...";// . $in_xml;
$doc = new DOMDocument();
$doc->loadXML( $in_xml);
} else {
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<textarea name="in_xml" cols="40" rows="10">
Enter your comment here
</textarea>
<input type="submit" value="Submit">
<?php
}
?>
</html>
J'ai reçu un tas d'avertissements : Warning : DOMDocument::loadXML() [domdocument.loadxml] : String not started expecting ' or " in Entity, line : 1 in /Library/WebServer/Documents/sandbox/parse_xml/index.php on line 12
Avertissement : DOMDocument::loadXML() [domdocument.loadxml] : Malformed declaration expecting version in Entity, line : 1 in /Library/WebServer/Documents/sandbox/parse_xml/index.php on line 12
Avertissement : DOMDocument::loadXML() [domdocument.loadxml] : Blank needed here in Entity, line : 1 in /Library/WebServer/Documents/sandbox/parse_xml/index.php on line 12
Avertissement : DOMDocument::loadXML() [domdocument.loadxml] : parsing XML declaration : '?>' expected in Entity, line : 1 in /Library/WebServer/Documents/sandbox/parse_xml/index.php on line 12
Avertissement : DOMDocument::loadXML() [domdocument.loadxml] : AttValue : " ou ' attendu dans Entity, ligne : 4 in /Library/WebServer/Documents/sandbox/parse_xml/index.php on line 12
Avertissement : DOMDocument::loadXML() [domdocument.loadxml] : attributes construct error in Entity, line : 4 in /Library/WebServer/Documents/sandbox/parse_xml/index.php on line 12
Avertissement : DOMDocument::loadXML() [domdocument.loadxml] : Couldn't find end of Start Tag title line 4 in Entity, line : 4 in /Library/WebServer/Documents/sandbox/parse_xml/index.php on line 12
Avertissement : DOMDocument::loadXML() [domdocument.loadxml] : Mismatch des balises d'ouverture et de fin : videocollection ligne 3 et title dans Entity, ligne : 4 in /Library/WebServer/Documents/sandbox/parse_xml/index.php on line 12
Avertissement : DOMDocument::loadXML() [domdocument.loadxml] : Extra content at the end of the document in Entity, line : 5 in /Library/WebServer/Documents/sandbox/parse_xml/index.php on line 12