2011-12-01 3 views
0

j'ai écrit le code suivant à l'aide XMLDocumentxmlDocument équivalent en XDocument

string Query = @"/ShortcutList/" + Modality; 
      XmlNodeList nodes = shortcutsXMLDocument.SelectNodes(Query); 
      if (nodes == null) 
      { 
       // if the modality not exists, I will load the Default one 

       Query = @"/ShortcutList/Default"; 
       nodes = shortcutsXMLDocument.SelectNodes(Query); 
      } 

      for (int i = 0; i < nodes[0].ChildNodes.Count; i++) 
      { 
// do something here 
} 

shortcutsXMLDocument est XMLDocument

Comment convertir en utilisant XDocument, je ne ai pas trouver l'équivalent à SelectNodes dans XDocument

une idée s'il vous plaît

Répondre

1

Eh bien, le code est plutôt étrange que SelectNodes renvoie toujours un XmlNodeList de sorte que le contrôle if (nodes == null) ne sera jamais vrai et vous pouvez tout aussi bien l'enlever. En ce qui concerne les deux premières lignes, vous pouvez les remplacer par

List<XElement> nodes = shortcutsXMLDocument.Elements("ShortcutList").Elements(Modality).ToList(); 

en supposant que la variable Modality contient simplement un nom d'élément et non une expression XPath complète.

Ensuite, pour la boucle for, vous pouvez utiliser par ex.

foreach (XNode node in nodes[0].Nodes()) { 
    // do something here with node 
} 

mais je pense que nous pourrions écrire un code plus clair et plus simple si vous nous dites ce que vous voulez réaliser en affichant un échantillon du XML et des explications sur les données que vous souhaitez extraire.