【问题标题】:Read XML into DataTable将 XML 读入 DataTable
【发布时间】:2016-06-17 07:33:28
【问题描述】:

我为 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 时,列与架构匹配:

但 Row 有以下内容:

我怎样才能将里面的数据放入表格中?

【问题讨论】:

  • 不要忘记选择\up-vote一个答案......

标签: c# xml datatable dataset


【解决方案1】:

我用您保存在文件中的 XML 快速测试了这一点....将 XML 加载到 DataSet 中并将其连接到 dataGridView 以查看您的数据.....

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

这很好,dataGridView 中的所有数据...希望对您有所帮助..

【讨论】:

  • 我的程序正在从 GetResponseAsXml() 中获取一串 XML。它将这个字符串放入 XmlReader,然后放入导致问题的 DataSet。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-13
  • 1970-01-01
  • 1970-01-01
  • 2013-06-11
  • 2011-08-29
相关资源
最近更新 更多