2

readXMLの結果のテーブルがどのように見えるかを知りたいだけです。たとえば、xmlファイルが次のようになっている場合などです。

<item attr="some attribute">
<descirption>anything</description>
</item>

次のように、Tablesコレクションから直接テーブルを参照できます。

ds.ReadXml(xml);
... ds.Tables[i]

次に、rowsコレクションを使用して行と列にアクセスできます。

ds.Tables[3].Rows[i].ItemArray(j);

しかし、どのようにすればxmlノードの「属性」にアクセスできますか?

4

1 に答える 1

0

それは列にあります。私はあなたのxmlを少し修正しました:)

var xml = "<item attr=\"some attribute\"><description>anything</description></item>";
var ds = new DataSet();

ds.ReadXml( new StringReader( xml ), XmlReadMode.Auto );

var ia = ds.Tables[0].Rows[0].ItemArray;
var att = ia[1]; // att == "some attribute"

スキーマがない場合は、列をチェックしてそれが何であるかを判断する必要がある場合があります。

コメントごと:スキーマ(XmlReadMode.Auto)を推測させていることがわかります。Rowsが属性を順番に追加し、次に要素の値を追加するときに、ルートノードの下の要素を取得します。したがって、たとえば次のXML..。

var xml = "<items>
             <item attr1='attr1' attr2='attr2'>
                 <description>desc1</description>
             </item>
             <item attr1='attr3' attr2='attr4'>
                 <description>desc2</description></item>
           </items>";

attr1、attr2、descriptionの列を持つ2つの行(各アイテムに1つ)を取得します。スキーマを使用して、XMLを解釈する方法を変更できます。

于 2009-05-24T22:10:49.750 に答える