3

ノードがあり、このノードには 5 つの子ノードが含まれています。そのうちの 3 つは RatePlan です。これらの RatePlan 子ノードを LINQ で選択するにはどうすればよいですか?

何かを明確にしましょう:

私のxmlは次のようなものです:

<hotels>
<hotel id="1" name="hotel 1">
    <telephone>123456789</telephone>
    <fax>123</fax>
    <address>hotels address</address>
    <hotelRatePlan>10</hotelRatePlan>
    <hotelRatePlan>11</hotelRatePlan>
    <hotelRatePlan>12</hotelRatePlan>
  </hotel>
  <hotel id="2" name="hotel 2">
    <telephone>123456789</telephone>
    <fax>123</fax>
    <address>hotels address</address>
    <hotelRatePlan>100</hotelRatePlan>
    <hotelRatePlan>110</hotelRatePlan>
    <hotelRatePlan>120</hotelRatePlan>
  </hotel>
  <hotel id="3" name="hotel 3">
    <telephone>123456789</telephone>
    <fax>123</fax>
    <address>hotels address</address>
    <hotelRatePlan>10</hotelRatePlan>
    <hotelRatePlan>11</hotelRatePlan>
    <hotelRatePlan>12</hotelRatePlan>
  </hotel>
</hotels>

XMLDocument を使用して XML ファイルを読み取っています。それを読んだ後、SelectNodes で選択を行います。最初のホテル情報を取得するときに、特定の子ノード (hotelRatePlan) を選択したいと考えています。どうやってやるの?

4

3 に答える 3

12

あなたの質問は特に明確ではありませんが、次のことが必要な場合があります。

var ratePlans = node.Elements("RatePlan");

これは、実際XmlNodeXmlDocumentなどではなく LINQ to XML を使用していることを前提としています。 「古い」DOM API を使用している場合、次を使用できます。

var ratePlans = node.ChildNodes
                    .OfType<XmlElement>()
                    .Where(e => e.LocalName == "RatePlan");

...しかし、可能であればLINQ to XMLに移行したいと思います。これは単純に、はるかに優れた XML API です。

于 2010-10-06T09:39:52.927 に答える
0

私はあなたが意味すると思います:

var ratePlans = node.ChildNodes.OfType<RatePlan>();

于 2010-10-06T09:41:47.400 に答える