2011-08-01 2 views
3

Comment trouver le noeud XML ayant une certaine valeur de texte?rechercher une chaîne de texte au format XML

exemple que je veux faire quelque chose comme ce qui ne fonctionne pas:

var xml = "<data><itemB>more data</itemB><itemC>yes, more data</itemC><itemA>some data</itemA></data>"; 

var searchString = "more data"; 

var foundin = $(xml + ":contains(" + searchString + ")"); 

Répondre

3

Vous pouvez appeler le sélecteur :contains avec l'élément XML racine comme son contexte:

var foundin = $(":contains(" + searchString + ")", xml); 

Vous pouvez voir les résultats sont en this fiddle.

1

Essayer $ (xml) .children ('*: contient ("plus de données")')

1

Ces gars-là me devança, mais voici l'exemple que je fait.

<script> 
     $(function(){ 
      var xml = "<data><itemB>more data</itemB><itemC>yes, more data</itemC><itemA>some data</itemA></data>"; 
      var query = "more data"; 
      $(":contains(" + query + ")", xml).each(function(){ 
       alert(this.localName); //show node name 
      }); 
     }); 
    </script> 

Modifier Je suppose que vous essayez d'obtenir au nœud xml avec le texte de la requête. Vous voulez probablement utiliser nodeName au lieu de localName pour un meilleur support IE.

Questions connexes