Разумный способ добавить атрибуты к корневому элементу XML в C # - PullRequest
0 голосов
/ 15 апреля 2010

Функция «WriteStartElement» ничего не возвращает. Я нахожу это немного странным. Так что до сих пор я делал это так.

XmlDocument xmlDoc = new XmlDocument();
XmlTextWriter xmlWriter = new XmlTextWriter(m_targetFilePath, System.Text.Encoding.UTF8);
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");
xmlWriter.WriteStartElement("client");
xmlWriter.Close();
xmlDoc.Load(m_targetFilePath);
XmlElement root = xmlDoc.DocumentElement;

Сохранение документа, затем перезагрузка, чтобы получить начальный элемент, чтобы я мог записать в него атрибуты. Кто-нибудь знает правильный способ сделать это, потому что я почти уверен, что то, что я делаю, неправильно.

Я пытался использовать xmlWriter.AppendChild (), но, похоже, ничего не выписывается. (

Ответы [ 3 ]

3 голосов
/ 15 апреля 2010

Если вы используете 3,5 или выше, XDocument заставит вас влюбиться.

1 голос
/ 15 апреля 2010

Вы пробовали что-то подобное?

// add the root node    
xmlWriter.WriteStartElement("client");
// add the attribute to root node
xmlWriter.WriteStartAttribute("foo");

// add the value of the attribute
xmlWriter.WriteValue("attribute value...");

// close the attribute to root node
xmlWriter.WriteEndAttribute();
// close the root node
xmlWriter.WriteEndElement();
0 голосов
/ 15 апреля 2010

Вы смотрели на использование XmlSerializer? Создайте класс для хранения всех ваших данных, создайте экземпляр вашего класса и затем используйте XmlSerializer для записи его в файл XML.

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