繁体   English   中英

将XML属性添加到数据集

[英]Adding XML Attributes to a DataSet

我想向下面声明的数据集添加一个属性,该属性的值是该行中字段之一的值。
因此,我想添加如下所示的ID。

<root>
    <Table id="GAS-405">
        <apple>2009FA</apple>
        <orange>3.00</orange>
        <pear>BGPR</pear>
        <banana>GAS-405</banana>
    </Table>
</root>

这将帮助我稍后在应用程序中标识该节点。
这可能吗? 使用XMLDocument这样做更容易吗?

    Dim sdaFoo As SqlDataAdapter = New SqlDataAdapter("SELECT BLAH FROM BLAHBLAH", conn)
    Dim dsFoo As DataSet = New DataSet()
    dsFoo.DataSetName = "apple"
    sdaFoo.Fill(dsFoo)
    dsFoo.WriteXml("C:\Inetpub\wwwroot\foo.xml")

Dataset.WriteXml()实际上是一种便捷方法,而不是灵活的XML处理方式。

您需要采取另一种方法。 有几种选择:

  1. 如果仅添加单个属性,则可以通过将其作为XDocument重新打开,然后将该属性添加到必要的元素中,然后再次保存,将其入侵到生成的xml中。 不太优雅,但轻松,有时轻松是最好的。 更好的是,只需使用WriteXml()将xml放入字符串中,然后将该字符串作为XDocument加载即可。

  2. 直接从查询中生成XML,而不是将其作为数据集。 Sql Server 2005和2008具有一些很好的XML方法,允许您选择一组行作为XML( SELECT ... FOR XML )并指定其外观。

  3. 对您的数据集使用XmlSerialization,并使用对序列化过程的自定义控件来注入属性。...这将带来更多的麻烦,而不是值得的。

  4. 将属性存储在XML之外的其他位置,并使用某种对象来跟踪它。 不太确定您的代码是什么样的,但这可能是个不错的选择。

使用DataSet GetXML()方法可将整个XML作为字符串获取。 然后添加您的自定义属性,并使用StreamWriter将该字符串写入xml文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM