0

こんにちは、誰でも linq クエリを手伝ってもらえますか。通常、Web サービスへの GET リクエストのために、クライアント側から次のようにデータ グリッドにデータを入力します。

    {
        string uri = "http://localhost:8002/Service/Customer";
        XDocument xDoc = XDocument.Load(uri);
        var customer = xDoc.Descendants("Customer")
            .Select(n => new
            {
                CustomerID = n.Element("CustomerID").Value,
                Firstname = n.Element("FirstName").Value,
                Surname = n.Element("LastName").Value,
                Age = n.Element("Age").Value,
                //Time = DateTime.Parse(n.Element("TimeAdded").Value)
            })
            .ToList();

        dataGrid1.ItemsSource = customer;
    }

これは正常に機能しますが、顧客を雇用日にリンクし、xml は次のようになります。

<ArrayOfCustomer>
<Customer>
<CustomerID>1</CustomerID>
<FirstName>G</FirstName>
<LastName>Graam</LastName>
<Age>27</Age>
      <CustomerHireDate>
      <HireDate>
      <HireFromDate>15.07.2012</HireFromDate>
      <HireToDate>29.07.2012</HireToDate>
      </HireDate>
      </CustomerHireDate>
</Customer>
</ArrayOfCustomer>

これまでのところ、データグリッドに子孫の子孫を入力しようとする以下の方法にこだわっています。

            string uriShowCarHires = "http://localhost:8002/Service/Customer/{anything}";
            string Uri = uriShowCarHires.Replace("{anything}", textBox1.Text);
            XDocument xDoc = XDocument.Load(Uri);
            foreach (var node in xDoc.Descendants("Customer"))
            {

              \\..... how do you get the descendants of descendants for each n.element?
            }

これが私の考えているようにデータグリッドにデータを入力するかどうかはわかりませんが、データグリッドセルの1つの中に「配列」が入るのを避けたいと思っていました。次のような出力 abit を探しています。

Name etc | HireFromDate | HireToDate
G           09.12.2012    01.01.2013

誰かが助けてくれたら感謝します

4

1 に答える 1

1

私はあなたがこのようなものを探していると思います(最も効率的ではありませんが、うまくいくはずです):

var customer = xDoc.Descendants("Customer")
        .Select(n => new
        {
            Firstname = n.Element("FirstName").Value,
            Surname = n.Element("LastName").Value,
            HireFromDate = n.Element("CustomerHireDate")
                            .Descendents("HireDate").First()
                            .Descendents("HireFromDate").First().Value,
            HireFromDate = n.Element("CustomerHireDate")
                            .Descendents("HireDate").First()
                            .Descendents("HireToDate").First().Value
        })
        .ToList();
于 2012-07-26T21:04:10.297 に答える