Как добавить дополнительную информацию в XML, сгенерированный из набора данных Writexml в C #? - PullRequest
1 голос
/ 17 марта 2009
ds.WriteXml(strXmlTestCasePath, XmlWriteMode.IgnoreSchema); 

ds является dataset. Я хочу добавить дополнительную строку или дополнительную информацию в этот XML. Как мне это сделать?

Ответы [ 2 ]

5 голосов
/ 17 марта 2009

Используйте XmlWriter, чтобы написать DataSet. Затем вы можете использовать тот же объект для написания дополнительного XML.

иллюстративный код:

            System.Data.DataSet ds;
            System.Xml.XmlWriter x;
            ds.WriteXml(x);
            x.WriteElementString("test", "value");
1 голос
/ 17 марта 2009

Вы не можете просто написать больше XML в конце сериализованного DataSet, так как если вы это сделаете, вы будете производить XML-документ с более чем одним элементом верхнего уровня. Используя XmlWriter, вам нужно сделать что-то вроде этого:

using (XmlWriter xw = XmlWriter.Create(strXmlTestCasePath));
{
   xw.WriteStartElement("container");
   ds.WriteXml(xw, XmlWriteMode.IgnoreSchema);
   // from here on, you can use the XmlWriter to add XML to the end; you then
   // have to wrap things up by closing the enclosing "container" element:
   ...
   xw.WriteEndElement();
}

Но это не поможет, если вы пытаетесь добавить элементы XML внутри в сериализованный DataSet. Для этого вам нужно сериализовать DataSet, прочитать его в XmlDocument, а затем использовать методы DOM для манипулирования XML.

Или, альтернативно, создайте и заполните новый DataTable непосредственно перед сериализацией DataSet, а затем удалите его, когда вы закончите. Это действительно зависит от ваших реальных требований.

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