0
votes

Comment réparer PHP AVIS: «Essayer d'obtenir la propriété de non-objet dans» (analyse XML)

Je poursuis des données de XML dans PHP. Je veux l'afficher, mais j'ai reçu un avis: "Essayer d'obtenir la propriété de non-objet dans". Il ne fait pas non plus afficher les données

mon fichier php: xxx

mon fichier XML: xxx

sortie du navigateur: xxx


1 commentaires

L'élément racine du XML n'est pas une propriété, vous devez sauter et faire $ résultat = $ xml-> sujets [$ I] -> nom;


3 Réponses :


1
votes
  1. Le titre est l'élément racine, qui sera trouvé directement dans $ xml , vous permettant ainsi d'utiliser $ xml-> sujet au lieu de $ xml-> tittle-> sujet .

  2. Vous devez boucler sur tous les éléments de la matrice, quel que soit le nombre quelconque il y a, et pas de disque dur que dans votre fichier PHP.

    Le résultat ressemblerait à quelque chose comme ceci: xxx


0 commentaires

1
votes

Vous pouvez corriger l'erreur en utilisant le code ci-dessous, supprimez "Titre"

$xml = simplexml_load_file('file.xml');

for($i = 0; $i < 3; $i++)
{
$result = $xml->topic->name;    
}

echo $result;


0 commentaires

0
votes

Comme je l'ai écrit dans les commentaires, l'objet renvoyé par simpplexml_load_file n'inclut pas une propriété pour l'élément racine. Vous devez omettre cela de la chaîne.

Quelques autres commentaires:

  • Votre boucle écrase $ résultat dans chaque itération, vous obtiendrez ainsi le dernier nœud. Peut-être, vous voulez $ résultat pour être un tableau
  • Vous devez convertir le nœud SimplexML en une chaîne (au cas où vous voulez une chaîne).
  • Vous vous attendez à trois nœuds, mais il serait préférable de rendre cela plus dynamique de sorte qu'un passage au nombre de sujets dans le XML ne casse pas le code

    Voici comment je suggérerais de coder la boucle: xxx

    maintenant $ résultat aura [ "PHP", "JS", "CSS"]]


0 commentaires