2010-07-23 7 views
7

Pour une opération sur les descendants XDocument, comment ne pouvez-vous renvoyer que des nœuds enfants immédiats?Pour une opération sur les descendants XDocument, comment ne pouvez-vous renvoyer que les noeuds enfants immédiats?

je une opération le long des lignes de:

XDocument xmlDc = XDocument.Load(dependencyFilePath);  
IEnumerable<IGrouping<string, XElement>> scriptNodes = 
from s in xmlDc.Descendants("script") select s; 

Le problème est mon doc XML est structuré comme suit

<topNode> 
<script> 
    <someNode>...</someNode> 
    <script>....</script> 
</script> 
</topNode> 

Essentiellement, les balises de script peuvent avoir des balises scrip des enfants, mais quand je do Descendents, je veux seulement récupérer le noeud enfant immédiat, pas les nœuds de script petitchild.

Est-ce possible avec XDocument? Puis-je utiliser un prédicat pour vérifier en quelque sorte si un candidat potentiel a pour parent le nœud que je vérifie pour accomplir ceci?

Répondre

16

Je pense que Elements("script") ferait l'affaire, au lieu de Descendants("script")

+0

Je ne voyais même pas que avant de demander, et j'ai regardé trop :-) Merci! – Matt