1

Excel と同じように、単純な DataTable に XML 応答を渡すために、さまざまな形式で検索して試してきました。

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 を作成したところ、生成された 2 つのエラーが発生し、最後に Visual Studio を使用して XSD を生成し、4 を生成しました。エラーはありませんが、作成された列はなく、データも追加されていない XSD。

私は今、アイデアがありません。助言がありますか?正規化されたデータのない DataTable (Excel の機能) ではなく、XML を直接使用する別のアプローチでしょうか?

ありがとうございました。

4

1 に答える 1

1

私の提案は、C# 3 の Linq.XML 手法です。LINQ to XML は、.NET 統合言語クエリ (LINQ) フレームワークを利用するメモリ内 XML プログラミング インターフェイスを提供します。LINQ to XML は、最新の .NET Framework 言語機能を使用し、更新され再設計されたドキュメント オブジェクト モデル (DOM) XML プログラミング インターフェイスに匹敵します。

http://www.hookedonlinq.com/LINQtoXML5MinuteOverview.ashxで入手できる興味深い簡単な関連例はほとんどありません。

于 2011-08-26T04:01:19.517 に答える