Bonjour à tous,
Je me retrouve en face d'un petit problème que je ne comprends pas.
Voici un morceau de ma définition XSD :
J'ai ensuite un fichier XML qui contient :<xs:element type="xs:string" name="stocksuffisant" minOccurs="1" maxOccurs="1" />
Lorsque je récupère mon XML de ma base de données, je le charge dans un DOM :<stocksuffisant>yes</stocksuffisant>
Et finalement j'aimerais parser ce $doc dans une fonction m'affichant un formulaire pour insérer dans le formulaire les valeurs contenues dans le XML :$doc = new SchemaDOMDocument('1.0'); // création d'un nouvel objet XML
$doc->validateOnParse = true;
$doc->loadXML($xmldocument); // loading dand l'objet XML du document XML
if($doc->validateXMLSchemas($this->schema, true)){ // si l'objet est valide par rapport au XSD ($this->schema)
return $doc;
}
Ces lignes de codes me retourne bien "DOMElement Object ( ) ".$stocksuffisantobject = $doc->getElementsByTagName('stocksuffisant')->item(0);
print_r($stocksuffisantobject);
Maintenant j'aimerais accéder à la valeur de ce DOMElement. J'ai cherché ici :
Et j'ai vu ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?php $dom = new DOMDocument('1.0', 'iso-8859-1'); $element = $dom->createElement('test', 'Ceci est l\'élément racine !'); // Nous insérons le nouvel élément en tant que racine (enfant du document) $dom->appendChild($element); echo $dom->saveXML(); ?>
Mais dans cette même doc, impossible de trouver cette fonction nodeValue()value : La valeur de l'élément. Par défaut, un élément vide sera créé. Vous pouvez également définir la valeur plus tard avec la fonction DOMElement->nodeValue .
En fait, il n'y a que des fonctions pour récupérer les attributs d'un DOMElement, rien pour la valeur de l'élément, ce qui me gène un peu.
NOTE : Je pourrais en fait enregistrer ma valeur "yes" dans un attribut à la place de mettre un <element type="xs:string">, mais je me demande par simple curiosité comment faire pour récupérer une valeur d'un DOMElement. Il est bien clair que si la fonction DOMElement->createElement() prend deux arguments dont un est une valeur, il y a un moyen pour récupérer cette valeur...
C'est la doc de la librairie qui est mal documentée (oublis, incohérence ou autre) ou je suis complètement aveugle et j'ai raté la bonne fonction sur DOMElement?
Merci d'avance pour vos réponse.
Partager