J'ai une chaîne XML qui ressemble à ceci:un à plusieurs LINQ pour XML requête
<Attributes>
<ProductAttribute id="1">
<ProductAttributeValue>
<Value>a</Value>
</ProductAttributeValue>
</ProductAttribute>
<ProductAttribute id="2">
<ProductAttributeValue>
<Value>a</Value>
</ProductAttributeValue>
<ProductAttributeValue>
<Value>b</Value>
</ProductAttributeValue>
</ProductAttribute>
</Attributes>
Je voudrais revenir un IEnumerable comme ceci:
Id Value
1 a
2 a b
J'ai essayé et seulement a obtenu la valeur "b" pour Id "2":
XElement e = XElement.Parse(xmlString);
var q = from pa in e.Elements("ProductAttribute")
from pav in pa.Elements("ProductAttributeValue").Elements("Value")
select new
{
Id = (int)pa.Attribute("id"),
Value = (string)pav
};
J'ai essayé ceci:
XElement e = XElement.Parse(xmlString);
var q = from pa in e.Elements("ProductAttribute")
select new
{
Id = (int)pa.Attribute("id"),
Value = pa.Elements("ProductAttributeValue").Elements("Value")
};
Mais n'a pas pu lancer la valeur en tant que chaîne. En utilisant LINQPad la sortie était comme ceci:
Id Value
1 a
2 <Value>a</Value>
<Value>b</Value>
J'essaye juste de renvoyer les valeurs. Est-ce seulement possible?
Merci.
Cette est également très utile! Merci campbell. FYI il y a une parenthèse fermante manquante de votre exemple de code. A part ça, ça a fonctionné parfaitement. – trevorc
@joebloe: merci pour la note sur le paren. N'oubliez pas de voter (lorsque vous avez suffisamment de rep) et choisissez une «réponse acceptée» dans le cadre du système de réputation sur StackOverflow. Donner de la réputation à ceux qui prennent le temps de répondre aux questions. J'ai voté pour votre question, car je pensais que c'était une bonne question, et pour vous aider à vous faire représenter. –