Управление данными XML в .NET - PullRequest
3 голосов
/ 12 мая 2011

Я изучаю обработку данных XML в .NET.У меня есть следующий формат XML.

<BOOKS>
    <BOOK>
        <TITLE>book 1</TITLE>
        <AUTHOR>author 1</AUTHOR>       
        <PRICE>10.90</PRICE>
        <YEAR>1985</YEAR>
    </BOOK>
    <BOOK>
        <TITLE>book 2</TITLE>
        <AUTHOR>author 2</AUTHOR>       
        <PRICE>20.90</PRICE>
        <YEAR>1995</YEAR>
    </BOOK>
</BOOKS>

Мне нужно научиться добавлять / редактировать / удалять новые книги в файл XML.Не могли бы вы рассказать мне о том, что все классы изучить для этих функций.Я нахожу много классов, таких как XmlDocument XmlTextWriter и т. Д. Некоторые сайты также предлагают использовать LINQ.Я запутался в том, что должен был пойти.Есть ли хороший материал, на который я могу сослаться, чтобы понять это?

Ответы [ 2 ]

5 голосов
/ 12 мая 2011

Вот пример добавления и удаления элементов с использованием LINQ to XML:

// load the XML file into an XElement
XElement xml = XElement.Load(filePath);

// add a new book
xml.Add(
    new XElement("BOOK",
        new XElement("TITLE", "book 3"),
        new XElement("AUTHOR", "author 3"),
        new XElement("PRICE", 0.1),
        new XElement("YEAR", 2012)));

// remove a book that matches the desired title     
xml.Elements("BOOK").Where(x => x.Element("TITLE").Value == "book 1").Remove();

// to edit an existing element:
xml.Elements("BOOK")
    .Single(x => x.Element("TITLE").Value == "book 2") // take a single book
    .Element("AUTHOR").Value = "new author";  // and change its author field

В основном, используйте все, что вы хотите, если вы знакомы с технологией.На мой взгляд, LINQ to SQL выглядит немного проще.

1 голос
/ 12 мая 2011

Если размер файла достаточно мал - т.е. не несколько МБ, - вы должны использовать XmlDocument (классический способ) или XDocument (новые классы LINQ)для обработки XML).Вы найдете множество примеров для обоих.
Следующие результаты поиска могут дать подсказку о том, когда следует использовать какой из этих классов: http://www.google.com/search?hl=en&q=XmlDocument%20vs.%20XDocument. Лично я бы предложил использовать XDocument, потому что его APIпроще в использовании.

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