2009-04-21 10 views
1

Je dois trouver ShippingMethod et l'attribut Code et Destination de la pièce suivante de XML:Comment récupérer des données avec Linq en XML?

<ScoreRule> 
    <ShippingMethod Code="UPS1DA"> 
     <Destination Country="US" Area="IL" Value="0" /> 
    </ShippingMethod> 
</ScoreRule> 

Comment puis-je récupérer les données avec LINQ to XML?

+0

Vous recherchez simplement la syntaxe? Avez-vous une question spécifique sur la mise en œuvre? Aviez-vous une langue dans laquelle vous vouliez voir la mise en œuvre? Ne savez-vous pas par où commencer? –

Répondre

2

Voici le lien vers l'expression de requête XML pour le sélectionner. Je ne savais pas comment vous chargiez vos données initiales, donc je l'ai juste analysé dans un document, mais vous devriez créer votre XDocument en fonction de la façon dont vous obtenez vos données.

var data = XDocument.Parse("<ScoreRule><ShippingMethod Code=\"UPS1DA\"><Destination Country=\"US\" Area=\"IL\" Value=\"0\" /></ShippingMethod></ScoreRule>"); 

      var results = from item in data.Descendants("ShippingMethod") 
          select new 
           { 
            ShippingMethodCode = item.Attribute("Code").Value, 
            Country = item.Element("Destination").Attribute("Country").Value, 
            Area = item.Element("Destination").Attribute("Area").Value 
           }; 
3

Est-ce ce que vous voulez?

XElement scoreRuleElement = XElement.Parse("<ScoreRule><ShippingMethod Code=\"UPS1DA\"><Destination Country=\"US\" Area=\"IL\" Value=\"0\" /></ShippingMethod></ScoreRule>"); 

XElement shippingMethodElement = scoreRuleElement.Element("ShippingMethod"); 
string code = shippingMethodElement.Attribute("Code").Value; 
XElement destinationElement = shippingMethodElement.Element("Destination"); 
+0

Sauf si vous êtes sûr que l'attribut "Code" sera toujours là, obtenez la valeur en 2 étapes. string code = chaîne.Empty; XAttribute codeAttribute = shippingMethodElement.Attribute ("Code"); if (codeAttribute! = Null) { code = codeAttribut.Valeur; } – Erin

Questions connexes