Я хочу сохранить и загрузить данные xml с помощью XmlReader. Но я не знаю, как использовать этот класс. Можете ли вы дать мне пример кода для начала?Как использовать класс XmlReader?
ответ
Лично я переключился от XMLReader в System.XML.Linq.XDocument управлять своими файлами данных XML. Таким образом, я могу легко извлекать данные из xml в объекты и управлять ими, как и любой другой объект в моей программе. Когда я закончу манипулировать ими, я могу в любой момент сохранить изменения обратно в xml-файл.
//Load my xml document
XDocument myData = XDocument.Load(PhysicalApplicationPath + "/Data.xml");
//Create my new object
HelpItem newitem = new HelpItem();
newitem.Answer = answer;
newitem.Question = question;
newitem.Category = category;
//Find the Parent Node and then add the new item to it.
XElement helpItems = myData.Descendants("HelpItems").First();
helpItems.Add(newitem.XmlHelpItem());
//then save it back out to the file system
myData.Save(PhysicalApplicationPath + "/Data.xml");
Если я хочу, чтобы использовать эти данные в легко управляемых наборов данных я могу привязать его к списку моих объектов.
List<HelpItem> helpitems = (from helpitem in myData.Descendants("HelpItem")
select new HelpItem
{
Category = helpitem.Element("Category").Value,
Question = helpitem.Element("Question").Value,
Answer = helpitem.Element("Answer").Value,
}).ToList<HelpItem>();
Теперь его можно обойти и обработать с помощью любых неотъемлемых функций моего класса объектов.
Для удобства мой класс имеет функцию создания себя как узла xml.
public XElement XmlHelpItem()
{
XElement helpitem = new XElement("HelpItem");
XElement category = new XElement("Category", Category);
XElement question = new XElement("Question", Question);
XElement answer = new XElement("Answer", Answer);
helpitem.Add(category);
helpitem.Add(question);
helpitem.Add(answer);
return helpitem;
}
Если мне нужно запросить XML, как я запрашиваю другие данные, я согласен. Но для простой проверки или поиска только в прямом направлении XmlReader - лучший выбор, потому что он более эффективен. – Josh
У нас есть серьезная проблема, когда вопрос под названием «Как использовать класс XmlReader» имеет принятый ответ, который не подходит для ответа на вопрос. Я голосую, чтобы удалить или переименовать вопрос. –
Это нехорошее решение, если вы читаете огромные документы XML. XMLReader позволяет вам транслировать и читать фрагменты. – richard
Вы должны использовать метод Create
вместо использования new
, поскольку XmlReader
является abstract class
использованием the Factory pattern.
var xmlReader = XmlReader.Create("xmlfile.xml");
Это должно быть принято как реальный ответ на этот вопрос. –
С отличной C# 3.0 in a Nutshell, рассмотреть глядя на sample code из главы 11.
MSDN имеет простой пример, чтобы вы начали here.
Если вам интересно читать и писать документы XML, а не только специально использовать класс XmlReader, то есть a nice article covering a few of your options here.
Но если вы просто хотите, чтобы начать и играть вокруг, попробуйте это:
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create("file.xml", settings);
Меня всегда удивляет, когда я нахожу небольшие фрагменты кода, которые решают мою проблему, и они являются фрагментами, которые я не мог найти нигде *, включая сайт MS. Спасибо, этот меня спас. –
- 1. Как использовать XMLReader
- 2. Отсутствует класс XMLReader
- 3. Как использовать XMLReader в PHP?
- 4. Как использовать IN с xmlreader
- 5. Как использовать XmlReader читать этот XML
- 6. Как использовать XMLReader для отображения изображения?
- 7. Как использовать IDataReader с XmlReader для SqlCeBulkCopy?
- 8. Как использовать XMLReader для анализа XML-документа?
- 9. XMLReader неизвестен
- 10. Возвращение XMLReader
- 11. Использовать XmlReader и игнорировать порядок узлов
- 12. Как изменить кодировку XmlReader
- 13. Как работает XMLReader
- 14. XmlReader Как правильно читать?
- 15. Как работать надежно с XmlReader
- 16. xmlwriter как вход для xmlreader
- 17. Ошибка XMLReader
- 18. Как использовать XPath в API XMLReader для libxml2?
- 19. Как использовать XmlReader с поведением XmlTextReader с Namespaces = false
- 20. C# XMLReader простой XML
- 21. XmlReader на Android
- 22. Как работает XmlReader в C#
- 23. Как извлечь элементы с XMLReader
- 24. XmlReader слишком жадный
- 25. Как использовать класс CHCSVParser
- 26. Как использовать класс DateTime?
- 27. Как использовать класс .clearfix?
- 28. Как использовать класс GeometryConstraint?
- 29. Как использовать класс итератора?
- 30. Как использовать класс NSWindowController
71000 результаты http://www.google.ca/search?hl=en&q=xmlreader+example – ChrisW
Да, но это то, что StackOverflow для тоже! – Unsliced
XmlReader - это Reader, используемый POCO Entites tt для чтения файла edmx. Поэтому, чтобы продолжить свой API, и использовать его правильно, а не самостоятельно анализировать файл emdx, мне нужно использовать XmlReader. –