Как получить данные с помощью Linq в XML? - PullRequest
1 голос
/ 22 апреля 2009

Мне нужно найти ShippingMethod и атрибут Code и Destination из следующего фрагмента XML:

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

Как получить эти данные с помощью Linq в XML?

Ответы [ 2 ]

3 голосов
/ 22 апреля 2009

Это то, что вы хотите?

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");
2 голосов
/ 22 апреля 2009

Вот ссылка на выражение запроса XML для его выбора.

Я не знал, как вы загружали свои исходные данные, поэтому я просто проанализировал их в документе, но вы должны создать свой XDocument в соответствии с тем, как вы получаете свои данные.

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
                              };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...