2011-08-26 92 views
1

我一直在尋找並試圖用許多形式將Excel響應傳遞給一個簡單的DataTable。對C#中的DataTable的SOAP響應#

的XML是這樣的:

<?xml version="1.0" standalone="no"?> 
<SOAP-ENV:Envelope xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema" xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
    <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
     <SOAPSDK4:Function xmlns:SOAPSDK4="http://www.externalwebservice.com/message/"> 
      <Lists> 
       <ListCode>12345</ListCode> 
       <ListGroups> 
        <ListGroup> 
         <CodeGroup>ASDF</CodeGroup> 
         <DescriptionGroup>Example</DescriptionGroup> 
        </ListGroup> 
       </ListGroups> 
       <List> 
        <CodeList>ABC</CodeList> 
        <DescriptionList>Example List</DescriptionList> 
        <ListCategories> 
         <ListCategory>Type1</ListCategory> 
         <ListCategory>Type2</ListCategory> 
        </ListCategories> 
        <ListKinds> 
         <Kind> 
          <KindType>A</KindType> 
          <KindTarget>1</KindTarget> 
          <KindAttributes> 
           <KindAttribute1>A</KindAttribute1> 
           <KindAttribute2>B</KindAttribute2> 
          </KindAttributes> 
         </Kind> 
        </ListKinds> 
       </List> 
      </Lists> 
     </SOAPSDK4:Function> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

什麼Excel沒有可以幫助我在我所需要的,這是填補4桌與此數據及其關係。

我曾嘗試使用DataSet.ReadXML,但與它的問題是,由於某種原因,此方法生成14個表與數據是沒有用的,因爲根本沒有關係。 後來我試着用DataTable.ReadXML,但它給了我這個問題:「DataTable不支持從Xml進行模式推理。」然後嘗試使用DataTable.ReadXmlSchema(XML),它給出了一個沒有根文檔的錯誤,然後我用命令提示符創建了一個XSD,並且生成了兩個錯誤,最後我用Visual Studio生成了XSD,它生成了4個XSD沒有錯誤,但沒有創建列,也沒有添加任何數據。

我現在沒有想法。有什麼建議麼?也許不是沒有規範化數據的DataTable(Excel做什麼),而是直接使用XML的另一種方法?

謝謝。

回答

1

我的建議是使用C#3中的Linq.XML技術。LINQ to XML提供了一個利用.NET語言集成查詢(LINQ)框架的內存中XML編程接口。 LINQ to XML使用最新的.NET Framework語言功能,並且與更新的,重新設計的文檔對象模型(DOM)XML編程接口相媲美。

有一些有趣的快速相關的例子可在http://www.hookedonlinq.com/LINQtoXML5MinuteOverview.ashx

+0

上面的鏈接(http://www.hookedonlinq.com/LINQtoXML5MinuteOverview.ashx)被破壞,並採取一些惡意軟件的網站,PLZ立即刪除 –