dire que j'ai cette structure XML suivante: J'ai fait une variable du XML et je veux maintenant obtenir les valeurs de l'enfant1, alors j'utilise simplexml: p> < Pré> xxx pré> mais je reçois ce message: Avis: essayer d'obtenir une propriété de non-objet dans /x.php sur la ligne x p> Je l'ai également essayé avec $ xml-> Parent-> Child1, mais pas de succès. P> Quelqu'un ?? p> p>
3 Réponses :
$xml = new SimpleXMLElement($xml); $this->xmlcode = (string) $xml->parent[0]->child1;
Problème résolu pour moi en ajoutant de type (chaîne) de (flotteur) par exemple.
Un bon exemple d'utilisation de XPath avec PHP pour le simplexmlelement peut être trouvé ici http://www.php.net/manual/fr/class.Simplexmellement .php # 95229
// Find the topmost element of the domDocument $xpath = new DOMXPath($xml); $child1 = $xpath->evaluate('/main/parent/child1')->item(0);
SimplexML peut faire des requêtes XPath. Il n'est pas nécessaire de convertir en DOM pour le faire. Le seul avantage de l'utilisation d'évaluations est lorsque vous obtenez des résultats dactylographiés, que votre exemple ne fait clairement pas.
variante pour xpath strong> (également comment obtenir du contenu du nœud ayant des tirets de noms):
$xml = simplexml_load_string($content);
$node_value= (string)$xml->xpath('parent/child-1')[0];
soupir i> Cela doit être l'une des erreurs les plus fréquentes de tous les temps. Lorsque vous chargez un document XML dans un simplexmlellement, le nœud racine est le SimplexMlelement, par ex.
$ xml = code>.
Merci pour l'explication Gordon.