J'ai vu beaucoup de tutoriels ici en débordement, mais je ne pouvais pas comprendre ce que je me manque .. Je besoin d'aide ..XML obtenir les attributs
J'ai un XML qui est en ligne et je suis en train de analyser comme ceci:
<products>
<product>
<id>13389</id>
<name><![CDATA[ product name ]]></name>
<category id="14"><![CDATA[ Shoes > test1 ]]></category>
<price>41.30</price>
</products>
en ce qui concerne, je lis le XML et l'analyse comme ceci:
$reader = new XMLReader();
$reader->open($product_xml_link);
while($reader->read()) {
if($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'product') {
$product = new SimpleXMLElement($reader->readOuterXml());
$pid = $product->id;
$name = $product->name;
$name = strtolower($name);
$link = $product->link;
$price = $product->Price;
...
...
}
} //end while loop
comme vous pouvez le voir, il y a un id dans la balise catégorie .. C'est le celui que je voudrais saisir et passer à mon code ..
je fait quelque chose comme ceci:
echo "prodcut= " . (string)$product->category->getAttribute('id');
L'erreur que je reçois est: Appel à la méthode non définie SimpleXMLElement :: getAttribute()
J'ai besoin cet identifiant afin de le tester avant insertion dans DB .. Donc,
if($id = 600) {
//insert DB
}
Bonjour, merci pour votre réponse .. Puis-je demander s'il y a un moyen plus facile, sans tableaux ? Mon code tel quel, est-ce possible de récupérer l'identifiant? sans $ document = new DOMDocument(); // et une instance xpath à utiliser $ xpath = new DOMXpath ($ document); Ou n'importe quoi? –
Le tableau est uniquement un moyen de collecter les données lues.Utilisez des variables, appelez des fonctions, ... et bien, vous pouvez utiliser ma bibliothèque FluentDOM. Il étend XMLReader/DOM et en extrait une partie: https://github.com/FluentDOM/FluentDOM/blob/master/examples/XMLReader/sitemap.php :-) – ThW
Je garde ma solution telle quelle, avec quelques changements parlé de: $ document = ... $ xpath =. . . J'ai effacé la ligne de code $ product = new SimpleXMLElement et j'ai transformé toutes mes données en tableau comme vous le mentionnez .. Maintenant, je vois que l'analyse XML est un peu plus lente ... Le XML a 5.500 produits (qui ne sont pas beaucoup). Avant tout changement, le XML est un peu plus rapide je crois .. Des suggestions? –