Парсинг большого XML документа - C#

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

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

Доброго времени суток! Помогите пожалуйста спарсить XML файл такого рода. Вот его кусочек:
Листинг программы
  1. <Tools>
  2. <CatalogTool>
  3. <ToolID>RA411.5-2654D0.4062 K20</ToolID>
  4. <GTCGeneric>DRLFSS</GTCGeneric>
  5. <GTCVendorSpecific>DRLFSS</GTCVendorSpecific>
  6. <CatalogSpecificNode />
  7. <LifeCycleState>new</LifeCycleState>
  8. <TimeStamp>2014-06-27T15:45:36.473</TimeStamp>
  9. <DocumentTimeStamp>2014-06-27T15:45:36.473</DocumentTimeStamp>
  10. <Documents>
  11. <CatalogDocument>
  12. <DocumentId>P21</DocumentId>
  13. <Uri>Documents\P21\ra411.5-2654d0.4062 k20.p21.zip</Uri>
  14. </CatalogDocument>
  15. <CatalogDocument>
  16. <DocumentId>Draw2D</DocumentId>
  17. <Uri>Documents\Draw2D\0048299.dxf.zip</Uri>
  18. </CatalogDocument>
  19. <CatalogDocument>
  20. <DocumentId>ToolImage</DocumentId>
  21. <Uri>Documents\ToolImage\142479.jpg.zip</Uri>
  22. </CatalogDocument>
  23. <CatalogDocument>
  24. <DocumentId>ToolImage</DocumentId>
  25. <Uri>Documents\ToolImage\142764.jpg.zip</Uri>
  26. </CatalogDocument>
  27. </Documents>
  28. </CatalogTool>
  29. <CatalogTool>
  30. <ToolID>RA411.5-2854D0.4375 K20</ToolID>
  31. <GTCGeneric>DRLFSS</GTCGeneric>
  32. <GTCVendorSpecific>DRLFSS</GTCVendorSpecific>
  33. <CatalogSpecificNode />
  34. <LifeCycleState>new</LifeCycleState>
  35. <TimeStamp>2014-06-27T15:45:55.353</TimeStamp>
  36. <DocumentTimeStamp>2014-06-27T15:45:55.353</DocumentTimeStamp>
  37. <Documents>
  38. <CatalogDocument>
  39. <DocumentId>P21</DocumentId>
  40. <Uri>Documents\P21\ra411.5-2854d0.4375 k20.p21.zip</Uri>
  41. </CatalogDocument>
  42. <CatalogDocument>
  43. <DocumentId>Draw2D</DocumentId>
  44. <Uri>Documents\Draw2D\0048307.dxf.zip</Uri>
  45. </CatalogDocument>
  46. <CatalogDocument>
  47. <DocumentId>ToolImage</DocumentId>
  48. <Uri>Documents\ToolImage\142479.jpg.zip</Uri>
  49. </CatalogDocument>
  50. <CatalogDocument>
  51. <DocumentId>ToolImage</DocumentId>
  52. <Uri>Documents\ToolImage\142764.jpg.zip</Uri>
  53. </CatalogDocument>
  54. </Documents>
  55. </CatalogTool>
  56. <CatalogTool>
  57. <ToolID>RA411.5-3034D0.4531 K20</ToolID>
  58. <GTCGeneric>DRLFSS</GTCGeneric>
  59. <GTCVendorSpecific>DRLFSS</GTCVendorSpecific>
  60. <CatalogSpecificNode />
  61. <LifeCycleState>new</LifeCycleState>
  62. <TimeStamp>2014-06-27T15:45:56.363</TimeStamp>
  63. <DocumentTimeStamp>2014-06-27T15:45:56.363</DocumentTimeStamp>
  64. <Documents>
  65. <CatalogDocument>
  66. <DocumentId>P21</DocumentId>
  67. <Uri>Documents\P21\ra411.5-3034d0.4531 k20.p21.zip</Uri>
  68. </CatalogDocument>
  69. <CatalogDocument>
  70. <DocumentId>Draw2D</DocumentId>
  71. <Uri>Documents\Draw2D\0048309.dxf.zip</Uri>
  72. </CatalogDocument>
  73. <CatalogDocument>
  74. <DocumentId>ToolImage</DocumentId>
  75. <Uri>Documents\ToolImage\142479.jpg.zip</Uri>
  76. </CatalogDocument>
  77. <CatalogDocument>
  78. <DocumentId>ToolImage</DocumentId>
  79. <Uri>Documents\ToolImage\142762.jpg.zip</Uri>
  80. </CatalogDocument>
  81. </Documents>
  82. </CatalogTool>
Сам файл около 16МБ. Нужно среди всех ToolID найти тот, который будет задан в textbox и вывести всю информацию (значения тегов) в treeview или listbox. Прочитал кучу примеров, но так ничего толкового и не нашёл. Help please!!!

Решение задачи: «Парсинг большого XML документа»

textual
Листинг программы
  1.             XmlDocument doc = new XmlDocument();
  2.             doc.Load(path_to_file);
  3.  
  4.             var nodes = doc.SelectNodes("Tools/CatalogTool");
  5.  
  6.             var ToolID = textBox1.Text;
  7.  
  8.             foreach (XmlElement node in nodes)
  9.             {
  10.                 if (node["ToolID"].InnerText == ToolID)
  11.                 {
  12.                     foreach (XmlElement node2 in node)
  13.                     {
  14.                         // добавляем в treeview или listbox значения node2.InnerText
  15.                     }
  16.                 }
  17.             }

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


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

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

12   голосов , оценка 4.333 из 5

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

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

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