Salut,

Je dois parser un tout petit fichier XML unique.
dont voici la structure:

Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<?xml version="1.0" encoding="UTF-8" ?>
<data>
<login>login</login>
<password>password</password>
<mo>
<content>Texte</content>
<number>Numéro</number>
</mo>
</data>

Je voudrais récupérer le contenu en variables $content $number ? (pas besoin de login et password)

J'ai bossé du côté de XML Parse en PHP.. Mais c'est franchement compliqué leur truc..

Mon code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
	function startElementHandler(&$parser, &$name, &$attribs) {
		global $gXPath, $gMsg, $gName, $gOk;
 
		if($gOk) {
			if($gXPath == "/") {
				$gOk = ($name == "data");
			}
			else if($gXPath == "/data/") {
				if( $gOk = (sizeof($attribs) == 1 && $name == "mo") ) {
					$gMsg = array();
				}
			}
			else {
				$gMsg[$name] = "";
				$gName = $name;
			}
		}
		$gXPath .= "$name/";
	}
 
	function endElementHandler(&$parser, &$name) {
		global $gXPath, $gMsg, $gName, $gCount, $gOk, $resultat, $db_sms;
 
		if($gOk) {
			if($gXPath == "/data/mo/") {
 
 
				$number=$gMsg["number"];
				$keyword=$gMsg["keyword"];
 
				$query = "INSERT.......... $number etc etc";
 
				if (@mysql_query($query, $db_sms)){
					$resultat=True; // correct !
				}
				else {
					$resultat=False; // echec insert mysql
				}
 
			}
			$gCount++;
		}
		$gName = "";
		$gXPath = substr($gXPath, 0, -strlen($name) - 1);
	}
 
	function cdataHandler(&$parser, &$data) {
		global $gMsg, $gName, $gOk;
 
		if($gOk) {
			if(!empty($gName)) {
				$gMsg[$gName] .= $data;
			}
			else if(trim($data) !== "") {
				$gOk = FALSE;
			}
		}
	}
 
	/////////////////////////////// END DE L'INITIALISATION DES FONCTIONS XML ////////////////////////////////
 
	$gOk = TRUE;
	$gXPath = "/";
 
	$parser = xml_parser_create();
	xml_set_element_handler($parser, "startElementHandler", "endElementHandler");
	xml_set_character_data_handler($parser, "cdataHandler");

Je pense que j'ai faux partout mais bon...