Парсинг xml страницы - C#

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени. Есть xml страница откуда нужно получить ноду из тега <Author>. XML :
Листинг программы
  1. <?mso-application progid="Excel.Sheet"?>
  2. <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
  3. <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
  4. <Author>Stanislav Verner</Author>
  5. <LastAuthor>Stanislav Verner</LastAuthor>
  6. <Created>2017-05-19T10:23:01Z</Created>
  7. <LastSaved>2017-05-19T11:59:46Z</LastSaved>
  8. <Version>16.00</Version>
  9. </DocumentProperties>
Код на с#
Листинг программы
  1. public void Go()
  2. {
  3. XmlTextReader ValueReader = new XmlTextReader("http://castle-privatesolutions.sg/assets/quotes/book1.xml");
  4. try
  5. {
  6. while (ValueReader.Read())
  7. {
  8. switch (ValueReader.NodeType)
  9. {
  10. case XmlNodeType.Element:
  11. if (ValueReader.Name == "DocumentProperties")
  12. {
  13. if (ValueReader.HasAttributes)
  14. {
  15. ValueReader.MoveToElement();
  16. var Author = ValueReader.ReadOuterXml();
  17. XmlDocument XmlDocument = new XmlDocument();
  18. XmlDocument.LoadXml(Author);
  19. XmlNode xmlNode = XmlDocument.SelectSingleNode("DocumentProperties/Author");
  20. MessageBox.Show(xmlNode.ToString(), "");
  21. }
  22. }
  23. break;
  24. }
  25. }
  26. }
  27. catch (Exception ex)
  28. {
  29. MessageBox.Show(ex.Message, ex.Source);
  30. }
  31. }
Компилируется но выдает ошибку - ссылка на обьект не указывает на экземпляр обьекта.

Решение задачи: «Парсинг xml страницы»

textual
Листинг программы
  1. ...
  2. if (ValueReader.HasAttributes)
  3. {
  4.     ValueReader.MoveToElement();
  5.     var documentPropertiesXml = ValueReader.ReadOuterXml();
  6.    
  7.     XmlDocument xmlDoc = new XmlDocument();
  8.     var xmlnsMngr = new XmlNamespaceManager(xmlDoc.NameTable);
  9.     xmlnsMngr.AddNamespace("msoffice", "urn:schemas-microsoft-com:office:office");
  10.     xmlDoc.LoadXml(documentPropertiesXml);
  11.    
  12.     XmlNode xmlNode = xmlDoc.SelectSingleNode("msoffice:DocumentProperties/msoffice:Author", xmlnsMngr);
  13.     string author = xmlNode.InnerText;
  14.     MessageBox.Show(author, "");
  15. }
  16. ...

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут