【问题标题】:how can I read an xml attribute using readXML? how does dataset.readxml translate into tables?如何使用 readXML 读取 xml 属性? dataset.readxml 如何转换成表格?
【发布时间】:2010-10-28 15:10:23
【问题描述】:

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

【问题讨论】:

    标签: asp.net dataset readxml


    【解决方案1】:

    它在行中。我修复了你的 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 和描述的列。您可以使用模式更改它解释 XML 的方式。

    【讨论】:

    • itemArray[1]?为什么是“1”?有什么意义吗?如果你想阅读描述,你必须使用 ItemArray[0],你是说属性在最后被累积为列?如果描述标签有属性怎么办?我们如何访问它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 2011-10-01
    • 2018-04-18
    • 1970-01-01
    相关资源
    最近更新 更多