Как вставить данные в XML-файл с помощью приложения Windows в .net? - PullRequest
0 голосов
/ 10 сентября 2009

Как вставить данные в XML-файл с помощью приложения Windows в .net?

Ответы [ 5 ]

1 голос
/ 10 сентября 2009

Это очень общий вопрос. Есть несколько общих подходов, в зависимости от вашего целевого варианта использования.

1 голос
/ 10 сентября 2009

Очень много документации по работе с DOM в .NET здесь .

У вас есть конкретный пример того, что вы пытаетесь сделать? Таким образом, вы получите более четкий ответ / пример.

0 голосов
/ 10 сентября 2009

Если вам известна схема (XSD) вашего XML, вы можете использовать xsd.exe для генерации классов для анализа этих XML-файлов. Если вы не знаете схему, xsd.exe может попытаться экстраполировать ее для вас.

Тогда легко добавить свойства в сгенерированные классы (изменяет исходную схему!) Или использовать существующие свойства, чтобы вставить / изменить то, что вы хотите. Это быстрый способ выполнить задачу.

Если схема не слишком сложная, я бы выполнял чтение / запись вручную, используя атрибуты XmlSerialization, поскольку код, безусловно, будет чище. Пока XML не использует такие функции, как смешанный режим, он будет работать (существуют некоторые ограничения в структуре сериализации XML, обычно не критичные, если вы придерживаетесь хороших практик)

0 голосов
/ 10 сентября 2009

Вот один для C #

//The path to our config file   
string path = "Config.xml";
//create the reader filestream (fs)  
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);  
//Create the xml document
System.Xml.XmlDocument CXML = new System.Xml.XmlDocument();
//Load the xml document  
CXML.Load(fs);     
//Close the fs filestream  
fs.Close();       
// create the new element (node)  
XmlElement newitem = CXML.CreateElement("Item");
// Put the value (inner Text) into the node   
newitem.InnerText = "This is item #" + (CXML.DocumentElement.ChildNodes.Count + 1).ToString() + "!";               
//Insert the new XML Element into the main xml document (CXML)       
CXML.DocumentElement.InsertAfter(newitem, CXML.DocumentElement.LastChild);                
//Save the XML file           
 FileStream WRITER = new FileStream(path, FileMode.Truncate, FileAccess.Write, FileShare.ReadWrite);       
CXML.Save(WRITER);   
//Close the writer filestream    
WRITER.Close();

Хорошую статью вы можете найти - Работа с файлами XML в C #

0 голосов
/ 10 сентября 2009

Если ваш xml-файл небольшого размера, одним из самых простых вариантов является использование XmlDocument . Просто загрузите ваш xml и добавьте новые xml-узлы туда, куда вы хотите, в xml-файл.

Вот документация по XmlDocument: MSDN .

Пример кода:

XmlDocument dom = new XmlDocument();
dom.Load("filename");

//Append a new node
XmlElement newNode = dom.CreateElement("NewNode");
dom.DocumentElement.AppendChild(newNode);

Каждый XmlNode (XmlElement, XmlAttribute, XmlText и т. Д.) Имеет различные методы для вставки до, вставки после, добавления, удаления узла xml. Таким образом, вы можете делать с DOM практически все что угодно.

В случае, если ваш xml-файл большой, XmlDocument действительно может снизить производительность вашего приложения. Я бы рекомендовал использовать комбинацию XmlReader и XmlWriter или XDocument .

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