2012-02-23 4 views
0

をもたらした:私が使用しようとしているのLINQ:列挙は、これは私のxmlレイアウトではありません結果

<Data> 
     <Record /> 
      <PCI> 
       <FirstName></FirstName> 
       <LastName></LastName> 
      </PCI> 
     </Record> 
     <Record /> 
      <PCI>...</PCI> 
     </Record> 
     <Record /> 
      <PCI>...</PCI> 
     </Record> 
</Data> 

問合せ:

var Data = from Record in queryXml.Descendants("Record") 
      select new 
      { 
       lname = PCI.Element("LastName").Value 
      };   

をデータ変数をデバッグするとき、私は列挙ませEnumerationを得られなかった取得。データとレコードの名前を変更し、Descendantsメソッドへの入力を試みましたが、動作するものは見つけられません。

+5

あなたのXMLとあなたのコードは両方とも無効です。 – SLaks

答えて

0

おそらくタイプミスですが、<Record/>はレコードを空にします。 <Record>と言ってください。

+0

それは私が使用しているWebサービスから現れる方法です。 を記録する –

0

これは、使用しているWebサービスからXMLが返される方法です。それはひどく形成されたXMLです。上記のあなたの例を使用する:

<Data> 
    <Record /> //<-- this closes the Record element 
     <PCI> //<-- PCI would not be a child of Record, but a child element of Data 
      <FirstName></FirstName> 
      <LastName></LastName> 
     </PCI> 
    </Record> //<-- This is invalid as written unless you 
      // remove the '/' from Record above. 

あなたのWebサービスは、このようにデータを返す必要があります:

<Data> 
    <Record> 
     <PCI> 
      <FirstName></FirstName> 
      <LastName></LastName> 
     </PCI> 
    </Record> 
    <Record> 
     <PCI>...</PCI> 
    </Record> 
    <Record> 
     <PCI>...</PCI> 
    </Record> 
</Data> 
関連する問題