2010-11-01 2 views
0
<Vehicle> 
    <CheckPoints ID="11"> 
    <Days Day="1">check</Days> 
    </CheckPoints> 
    <CheckPoints ID="10"> 
    <Days Day="1">check</Days> 
    </CheckPoints> 
</Vehicle> 

et je souhaite interroger l'enregistrement à l'aide de LINQ. Ma question est, je veux itérer à chaque nœud et correspondre à l'Id CheckPoints avec mon Id et ensuite vouloir obtenir le texte des Jours jusqu'à la journée en cours. (Chaque point de contrôle aura un nœud Max 31 Days selon le mois en cours). S'il vous plaît aider.Retrait de données à partir de XML à l'aide de LINQ

+3

LINQ to XML: http://msdn.microsoft.com/en-us/library/bb387098.aspx – Martin

+1

accepte autres questions! – Svisstack

+0

pouvez-vous me dire vice verset de cette trouver les CheckPoints avec ID et écrire un nouveau noeud de jours avec du texte dedans? – Nipun

Répondre

0

Essayez cette

var xmlstr = @"<Vehicle> <CheckPoints ID=""11""> <Days Day=""1"">check</Days> </CheckPoints> <CheckPoints ID=""11""> <Days Day=""2"">check</Days> </CheckPoints><CheckPoints ID=""10""> <Days Day=""1"">check</Days> </CheckPoints></Vehicle>"; 
var id=11; 
var currDay = DateTime.Now.Day; 
var xl = XElement.Load(new StringReader(xmlstr)); 
var resxml = from el in xl.Descendants("CheckPoints") 
      where Convert.ToInt32(el.Attribute("ID").Value) == id 
      select el into x 
      from ell in x.Descendants("Days") 
      where Convert.ToInt32(ell.Attribute("Day").Value) <= currDay 
      select ell; 

foreach (var xres in resxml) 
{ 
    Console.Write(xres.Value); 
} 
+0

merci pour l'exemple. Mais j'ai besoin de données de date.Comme si aujourd'hui est 5ème alors j'ai besoin jusqu'à 5 données de xml car il y aura 5 nœuds dans chaque CheckPoints – Nipun

+0

@Nipun, "ell.Attribute (" Day "). Valeur) <= currDay" ramasse toutes les données jusqu'à aujourd'hui .... vous pouvez exécuter ceci et vérifier ... – RameshVel

+0

pouvez-vous me dire vice vers de cette trouvaille le CheckPoints avec l'identification et écrire un nouveau noeud des jours avec le texte dedans? Je veux dire que je veux écrire dans le resxml avec la valeur spécifiée dans ce – Nipun

Questions connexes