Добавление атрибутов XML в DataSet - PullRequest
0 голосов
/ 17 февраля 2010

Я хочу добавить к объявленному ниже набору данных атрибут, значение которого равно значению одного из полей в строке.
Поэтому я хочу добавить идентификатор, как показано ниже.

<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")

Ответы [ 2 ]

1 голос
/ 17 февраля 2010

Dataset.WriteXml() - это действительно удобный метод, а не гибкий способ работы с XML.

Вам потребуется другой подход.Есть несколько вариантов:

  1. Если вы просто добавляете один атрибут, вы можете взломать его в полученный XML-файл, повторно открыв файл как XDocument, добавивПриписать к необходимому элементу и сохранить его снова.Не слишком элегантно, но легко, а иногда легко - лучше всего.Более того, просто используйте WriteXml(), чтобы поместить ваш xml в строку, а затем загрузите строку как XDocument.

  2. Генерация XML из вашего запроса напрямую, а не как набор данных.В Sql Server 2005 и 2008 есть несколько хороших методов XML, которые позволяют вам выбрать набор строк в виде XML ( SELECT ... FOR XML ) и указать, как он выглядит.

  3. Используйте XmlSerialization для своего набора данных и внедрите атрибут, используя пользовательский контроль процесса сериализации ..., что будет намного сложнее, чем стоит.*

    Храните атрибут где-нибудь за пределами вашего XML и используйте какой-то объект для отслеживания его.Не совсем уверен, на что похож ваш код, но это может быть отличным вариантом.

0 голосов
/ 11 января 2011

Используйте GetXML() метод DataSet, чтобы получить весь XML в виде строки. Затем добавьте свои пользовательские атрибуты и запишите эту строку в XML-файл, используя StreamWriter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...