2013-08-21 55 views
0
Dataset ds=new DataSet(); 
ds.ReadXml("path of the xml"); 

子標籤但是DS有多個表,我想單獨取出來的頁眉和頁腳的詳細信息標籤信息:讀通過ReadXML的

XElement xElement = XElement.Parse(ds.GetXml().ToString()); 
    var items =xElement 
        .Descendants("Header"); 

上面的代碼不會產生我的結果,它迴歸爲空。

我如何獲得名稱&每個頁眉和每頁腳的詳細信息標籤的數字標籤?我可以使用ds.ReadXML創建2個數據集嗎?

這裏是我的XML:

<?xml version="1.0" encoding="UTF-8"?> 
<Mapping> 
<Header> 
    <Row> 
     <Details> 
     <Name>Name</Name> 
     <DataType>string</DataType> 
     <Value>Mark</Value> 
     </Details> 
     <Details> 
     <Name>Number</Name> 
     <DataType>int</DataType> 
     <Value>1</Value> 
     </Details> 
    </Row>  
</Header> 
<Footer> 
    <Row> 
     <Details> 
     <Name>Name</Name> 
     <DataType>string</DataType> 
     <Value>John</Value> 
     </Details> 
     <Details> 
     <Name>Number</Name> 
     <DataType>int</DataType> 
     <Value>2</Value> 
     </Details> 
    </Row> 
</Footer> 
</Mapping> 

數據集1:頭信息 - 這樣我就可以循環救援人員到場行

數據集2:頁腳信息 - 這樣我就可以循環救援人員到場的行

或者是否有其他方法分別取出姓名,號碼?這裏的目標是,如果你想建立自己的類實例像

public class Header 
{ 
public Header(){} 

public string Name; 
public int Number 

} 


public class Footer 
{ 
public Footer(){} 

public string Name; 
public int Number 

} 

回答

1
XElement mapping = XElement.Parse(ds.GetXml().ToString()); 
var query = from d in mapping.Descendants("Details") 
      select new { 
       Name = (string)d.Element("Name"), 
       Number = (int)d.Element("Number") 
      }; 

去取出來的數據,建立一個C#類:

var headers = from d in mapping.Element("Header") 
           .Element("Row").Elements("Details") 
       select new Header { 
        Name = (string)d.Element("Name"), 
        Number = (int)d.Element("Number") 
       }; 

獲取頁腳是一樣的,除了你應該選擇第一個元素是"Footer"


您也可以使用XPath選擇元素:

var headers = from d in mapping.XPathSelectElements("Header/Row/Details") 
       select new Header { 
        Name = (string)d.Element("Name"), 
        Number = (int)d.Element("Number") 
       }; 
+0

謝謝,我怎麼能作出這樣的選擇新標題 - 動態創建的頭類,我想用繩子創建Header.cs名稱和整數 - XML文件可以包含任何標籤,這些標籤需要成爲類的一部分? – Sharpeye500

+0

@ Sharpeye500請你澄清'xml可以包含任何標籤'的含義嗎?一些示例可能 –

+0

我想創建該類的屬性名稱的基礎上的標籤insied的XML,爲例如,我想要動態創建類標題與標籤名稱,數字作爲公共字符串名稱,公共詮釋數字等..閱讀標籤並創建類。我想創建運行時間類。 – Sharpeye500