Symfony DomCrawler: Rechercher un élément avec un attribut spécifique de la valeur
Je suis en utilisant le DomCrawler composant: http://symfony.com/doc/current/components/dom_crawler.html
J'aimerais, à l'aide de la CSS syntaxe, obtenir un élément avec un attribut spécifique de la valeur.
Voici le code que j'utilise:
$link = $crawler->filter('#product a[data-type="bla"]');
Cela semble fonctionner, comme la suivante retourne 1:
echo count($link);
Cependant, je ne filtre pas plus loin que cela. Je ne peux pas faire:
$link->filter('img')->attr('src');
Cette résultats dans le message d'erreur suivant:
The current node list is empty.
Cependant, je sais que pour certain qu'il ne l'est pas.
J'ai essayé la syntaxe que sur d'autres éléments et c'est toujours la même. Je suis en train de faire quelque chose de mal ou n'est-ce pas possible (avec css syntaxe, pas de xpath)
Qu'est-ce que la sortie de
echo count($link->filter('img'));
? Si 0, je suppose que vous n'avez pas un élément img comme un enfant de votre un. C'est la raison de The current node list is empty.
OriginalL'auteur Wesley | 2013-04-30
Vous devez vous connecter pour publier un commentaire.
Je ne peux pas suivre votre problème. En utilisant le courant des versions de développement (et aussi 2.1.0 et 2.2.0 versions) de la deux bibliothèques de logiciels dom-robot et css-sélecteur, l'exemple de code que vous avez fourni fonctionne très bien en considérant l'exemple suivant HTML:
Comme vous pouvez le voir c'est exactement votre code (seulement un peu différent, mais pas essentiellement), ce qui donne le résultat suivant mot à mot:
La première ligne de sortie est le
count()
et la seconde est la valeur de l'attribut src.Avez-vous exécuter compositeur de mise à jour? Avez-vous vérifié l'entrée?
href="https://discussions.apple.com/thread/4325736?start=0&tstart=0" >discussions.apple.com/thread/4325736?start=0&tstart=0 <- vous avez activé le menu développeur?
OriginalL'auteur M8R-1jmw5r