1

LINQ to XML を使用して C# で以下の XML ファイルの OrderProduct 要素から "id" を取得する際に問題が発生しています。より単純な XML ファイルを試してみたところ、複数の要素を取得できました。

C# は最初の id=542 のみを取得し、id=543 にループしません。ここで何が間違っていますか?

ありがとう。

---[注文.xml]-----------------------

<?xml version="1.0" encoding="utf-16"?>
<OrderXml>
  <Order ... >
    .
    .
    .
    <OrderProducts>
      <OrderProduct id="542"></OrderProduct>
      <OrderProduct id="543"></OrderProduct>
    </OrderProducts>
  </Order>
</OrderXml>

---[ C# ] ------------------------

IEnumerable<XElement> OrderXml = xelement.Elements ();

foreach (var order in OrderXml)
  Console.WriteLine ("id: {0}", order.Element ("OrderProducts").Element ("OrderProduct").Attribute ("id").Value);
4

3 に答える 3

0

トリックは、適切な場所にポインターを設定することです。

見るDescendants

foreach (var order in OrderXml.Descendants("OrderProducts"))
{
    Console.WriteLine ("id: {0}", order.Element("OrderProduct").Attribute("id").Value);
}
于 2013-08-01T18:01:04.133 に答える