Question

Quelle est la syntaxe correcte pour appliquer des fonctions de chaîne (par exemple, "normalize-space") sur un attribut à l'aide de la requête xpath ci-dessous?

Requête: "./@ media"

J'ai vu des exemples de cela ailleurs, mais si je l'essaie en utilisant la bibliothèque xpath de php, cela ne retourne rien ...

Était-ce utile?

La solution

L'utilisation de query () sur un objet DOMXPath toujours donne un ensemble de nœuds (entouré d'un DOMNodeList objet), jamais dans une chaîne.

Vous ne pouvez pas extraire les résultats des fonctions XPath. Vous devez interroger les nœuds que vous souhaitez traiter et les traiter en PHP.

Autres conseils

Utilisez evaluer () au lieu de query (). . Il retournera un résultat tapé. Il est disponible depuis PHP 5.1.

$doc = new DOMDocument();
$xpath = new DOMXpath($doc);
$q = $xpath->evaluate('"test"');
var_dump($q);

sortie:

string(4) "test"
./[normalize-space(@media)

Essayez ceci.

Comment ça?

normalize-space(./@media)

Vous pouvez également essayer: mais je ne pense pas que ce soit nécessaire ici.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top