2016-03-03 131 views
0

我已經返回下面的XML的的WebRequest:讀取XML到數據表

<DataSet> 
    <xs:schema id="FoxProDataTable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> 
     <xs:element name="FoxProDataTable" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> 
      <xs:complexType> 
       <xs:choice minOccurs="0" maxOccurs="unbounded"> 
        <xs:element name="FoxProDataRow"> 
         <xs:complexType> 
          <xs:sequence> 

           <xs:element name="d_alias" minOccurs="0"> 
            <xs:simpleType> 
             <xs:restriction base="xs:string"> 
              <xs:maxLength value="8" /> 
             </xs:restriction> 
            </xs:simpleType> 
           </xs:element> 

           <xs:element name="d_audit" type="xs:boolean" minOccurs="0" /> 

           <xs:element name="d_auditkey" minOccurs="0"> 
            <xs:simpleType> 
             <xs:restriction base="xs:string"> 
              <xs:maxLength value="50" /> 
             </xs:restriction> 
            </xs:simpleType> 
           </xs:element> 
           . . . 
           . . . 
           <xs:element name="d_version" type="xs:decimal" minOccurs="0" /> 
           <xs:element name="d_custom" type="xs:boolean" minOccurs="0" /> 
          </xs:sequence> 
         </xs:complexType> 
        </xs:element> 
       </xs:choice> 
      </xs:complexType> 
     </xs:element> 
    </xs:schema> 
    <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> 
     <FoxProDataTable> 
      <FoxProDataRow diffgr:id="FoxProDataRow1" msdata:rowOrder="0"> 
       <d_alias>ADJ  </d_alias> 
       <d_audit>false</d_audit> 
       <d_auditkey xml:space="preserve">             </d_auditkey> 
       <d_auditon>false</d_auditon> 
       <d_chadate xml:space="preserve">   </d_chadate> 
       <d_convert xml:space="preserve">               </d_convert> 
       <d_create>ADJ  </d_create> 
       <d_desc>Employer Quarter Adjustment      </d_desc> 
       <d_encrypt>true</d_encrypt> 
       <d_file>PRQTRADJ</d_file> 
       <d_key1>Company </d_key1> 
       <d_key2 xml:space="preserve">   </d_key2> 
       <d_key3 xml:space="preserve">   </d_key3> 
       <d_key4 xml:space="preserve">   </d_key4> 
       <d_massup>false</d_massup> 
       <d_msc>false</d_msc> 
       <d_parent xml:space="preserve">   </d_parent> 
       <d_prod>PR</d_prod> 
       <d_recsize>0</d_recsize> 
       <d_required>true</d_required> 
       <d_type>R </d_type> 
       <d_version>9.100100</d_version> 
       <d_custom>false</d_custom> 
      </FoxProDataRow> 
     </FoxProDataTable> 
    </diffgr:diffgram> 
</DataSet> 

我想讀這成爲一個DataSet/DataTable中,像這樣:

XmlDocument _xmlDoc = GetResponseAsXml(_url, _request, HttpMethods.GET); 
DataSet _dataSet = new DataSet(); 
_dataSet.ReadXml(new XmlTextReader(new StringReader(_xmlDoc.OuterXml))); 
DataTable _dataTable = _dataSet.Tables[0]; 

當我檢查_dataTable ,列匹配模式:

enter image description here

,但該行有日E採用:

enter image description here

我怎樣才能得到裏面的數據到表?

+0

不要忘記選擇\ up-vote回答.... – Monty

回答

0

我迅速用你的XML保存在文件中測試了這個....加載XML到DataSet和迷上它給一個DataGridView查看數據.....

DataSet _dataSet = new DataSet(); 
_dataSet.ReadXml(@"<Path to your XML>"); 
dataGridView1.DataSource = _dataSet.Tables[0]; 

這個工作好,dataGridView中的所有數據......希望有所幫助..

+0

我的程序從GetResponseAsXml()獲取XML字符串, 。它將這個字符串放入一個XmlReader,然後進入導致問題的DataSet。 – BrianKE