我只是想知道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节点的“属性”?
答案 0 :(得分: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的列。您可以使用模式更改它解释XML的方式。