【问题标题】:Reading and navigating an XML dataset file读取和导航 XML 数据集文件
【发布时间】:2010-12-11 02:46:59
【问题描述】:

我添加到 DataSet 后的 XML 数据集文件如下所示:

<?xml version="1.0" standalone="yes"?>
<root>
 <Email></Email>
 <FirstName></FirstName>
 <LastName></LastName>
 <Addresses>
   <item>
     <Address1></Address1>
   </item>
   <item>
     <Address1></Address1>
   </item>
 </Addresses>
 <Friends>
   <item>
     <Name></Name>
   </item>
   <item>
     <Name></Name>
   </item>
 </Friends>
</root>

我在访问 Address1 字段或 Name 字段时遇到问题。我可以遍历 Addresses 或 Friends 表,但这对我没有帮助,因为我想要的数据被包装了一层。

我试过了:

            foreach (DataRow ar in ds.Tables["Addresses"].Rows)
            {
                DataRow[] orderDetails = ar.GetChildRows("item");
            }

但没有成功。

帮助表示赞赏。

谢谢

【问题讨论】:

    标签: c# ado.net dataset linq-to-xml


    【解决方案1】:

    使用linq到xml

    public static XDocument GetXDocument()
        {
            XDocument mydata = XDocument.Parse("<?xml version=\"1.0\" standalone=\"yes\"?><root><Email></Email><FirstName></FirstName><LastName></LastName><Addresses><item><Address1>TestData</Address1></item><item><Address1></Address1></item></Addresses>  <Friends>    <item>      <Name></Name>    </item><item><Name></Name></item></Friends></root>");
            return mydata;
        }
    

    这将数据作为xdocument获取,这是您处理数据的方式

    public void OutputAddress()
    {
       XDocument data = xmlData.GetXDocument();
       string Expected = "TestData";
       var result = from 
           addesses in data.Element("root").Elements("Addresses") 
       where 
           addesses.Element("item").Element("Address1").Value != string.Empty
       select addesses.Element("item").Element("Address1").Value;
    
       foreach (string address1 in result)
       {
           Console.Write(address1);
        }
    }
    

    【讨论】:

      【解决方案2】:

      我建议您在使用 XML 时使用对象包装器。这很容易做到,我建议你看看这个博客: http://www.picnet.com.au/blogs/Guido/post/2009/09/10/XML-Settings-Files-No-more-webconfig.aspx

      这是针对设置 XML 文件的,但它仍然适用于此。

      谢谢

      吉多·塔皮亚

      【讨论】:

        猜你喜欢
        • 2011-07-24
        • 1970-01-01
        • 2014-02-23
        • 1970-01-01
        • 2011-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多