2012-02-23 61 views
0

這是我的XML佈局: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 
      };   

調試時的數據變量,我得到一個枚舉沒有產生枚舉。我試圖重命名數據和記錄和輸入到後代方法,但我找不到有用的東西。

+5

你的XML和代碼都無效。 – SLaks 2012-02-23 16:31:32

回答

0

也許這是一個錯字,但<Record/>將使記錄爲空。你應該說<Record>

+0

這就是它從我使用的Web服務中顯示的方式。 2012-02-23 16:46:14

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>