php simplexml obtenir un élément spécifique en fonction de la valeur d'un champ
Est-il un moyen d'obtenir un élément spécifique avec SimpleXML ?
Par exemple, je voudrais obtenir le titre d'un élément ayant pour ID mis à 12437 avec cet exemple xml :
<items>
<item>
<title>blah blah 43534</title>
<id>43534</id>
</item>
<item>
<title>blah blah 12437</title>
<id>12437</id>
</item>
<item>
<title>blah blah 7868</title>
<id>7868</id>
</item>
</items>
Où diable est la question de référence pour celui-ci? Il doit exister quelque part, mais je ne peux pas le localiser.
OriginalL'auteur Anar Choi | 2013-07-09
Vous devez vous connecter pour publier un commentaire.
Voici 2 façons simples de faire ce que vous voulez, on est une itération à chaque article comme ceci:
DÉMONSTRATION en direct.
L'autre à l'aide d'un XPath, à la broche point les données exactes que vous voulez comme ceci:
DÉMONSTRATION en direct.
//items/item[id = "12437"]
. Voir ma réponse ci-dessous pour une plus longue explication.Je savais déjà que cependant, j'ai été en essayant de fournir une réponse simple pour un débutant de comprendre et de lui montrer comment je vais le ventre avec le ci-dessus décrit le mieux.
OriginalL'auteur Prix
Vous souhaitez utiliser Xpath pour cela. En gros, c'est exactement la même que celle indiquée dans SimpleXML: la Sélection des Éléments Qui Ont Une Certaine Valeur de l'Attribut mais dans votre cas, vous n'êtes pas décider sur une valeur d'attribut, mais sur la valeur d'un élément.
Cependant dans Xpath pour l'élément que vous cherchez est le parent.Si la formulation de l'expression xpath est une sorte de simple:
De sortie (améliorée):
Voyons donc au cœur de cette requête xpath nouveau:
Il est écrit que: Sélectionnez tous les
<item>
éléments qui sont les enfants de tout<items>
éléments qui, individuellement, ont un enfant de l'élément nommé<id>
avec la valeur"12437"
.Et maintenant, avec le manque des trucs autour de:
La parenthèse autour de dit: De toutes ces
<item>
éléments, choisir uniquement le premier. En fonction de votre structure, cela peut ou peut ne pas être nécessaire.Voici donc la pleine utilisation de l'exemple et démo en ligne:
Donc ce que vous appelez un champ dans vos questions titre est le livre d'un enfant de l'élément. Gardez cela à l'esprit lors de la recherche pour plus compliquée requêtes xpath que vous obtenez ce que vous cherchez.
OriginalL'auteur hakre