如何使用 readXML 读取 xml 属性? dataset.readxml如何转换成表格?

发布于 2024-07-20 12:33:36 字数 389 浏览 7 评论 0原文

我只是想知道 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 节点的“属性”吗?

I just want to know how does the table resulting from readXML look like, say if the xml file looks like this:

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

I can reference tables directly by the Tables collection like this:

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

then I can access rows and columns using the rows collection:

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

but how can I access an "attribute" of any xml node?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墨洒年华 2024-07-27 12:33:36

它在行中。 我稍微修复了您的 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)。 它将根节点下的元素作为行,然后按顺序添加属性,然后添加元素中的值。 例如下面的 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 和描述的列。 您可以使用架构更改它解释 XML 的方式。

It's in the Row. I fixed your xml a bit :)

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"

If you don't have a schema, you might have to check the column to determine what it is.

Per comment: You will see I am letting it infer the schema (XmlReadMode.Auto). It takes elements under the root node as Rows then adds the attributes in order and then the value in the element. So for example the following XML ...

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

I will get two rows (one for each item) with Columns for attr1, attr2 and description. You can change the way it interprets the XML using a schema.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文