Парсинг большого XML документа - C#
Формулировка задачи:
Доброго времени суток! Помогите пожалуйста спарсить XML файл такого рода. Вот его кусочек:
Сам файл около 16МБ. Нужно среди всех ToolID найти тот, который будет задан в textbox и вывести всю информацию (значения тегов) в treeview или listbox. Прочитал кучу примеров, но так ничего толкового и не нашёл.
Help please!!!
<Tools> <CatalogTool> <ToolID>RA411.5-2654D0.4062 K20</ToolID> <GTCGeneric>DRLFSS</GTCGeneric> <GTCVendorSpecific>DRLFSS</GTCVendorSpecific> <CatalogSpecificNode /> <LifeCycleState>new</LifeCycleState> <TimeStamp>2014-06-27T15:45:36.473</TimeStamp> <DocumentTimeStamp>2014-06-27T15:45:36.473</DocumentTimeStamp> <Documents> <CatalogDocument> <DocumentId>P21</DocumentId> <Uri>Documents\P21\ra411.5-2654d0.4062 k20.p21.zip</Uri> </CatalogDocument> <CatalogDocument> <DocumentId>Draw2D</DocumentId> <Uri>Documents\Draw2D\0048299.dxf.zip</Uri> </CatalogDocument> <CatalogDocument> <DocumentId>ToolImage</DocumentId> <Uri>Documents\ToolImage\142479.jpg.zip</Uri> </CatalogDocument> <CatalogDocument> <DocumentId>ToolImage</DocumentId> <Uri>Documents\ToolImage\142764.jpg.zip</Uri> </CatalogDocument> </Documents> </CatalogTool> <CatalogTool> <ToolID>RA411.5-2854D0.4375 K20</ToolID> <GTCGeneric>DRLFSS</GTCGeneric> <GTCVendorSpecific>DRLFSS</GTCVendorSpecific> <CatalogSpecificNode /> <LifeCycleState>new</LifeCycleState> <TimeStamp>2014-06-27T15:45:55.353</TimeStamp> <DocumentTimeStamp>2014-06-27T15:45:55.353</DocumentTimeStamp> <Documents> <CatalogDocument> <DocumentId>P21</DocumentId> <Uri>Documents\P21\ra411.5-2854d0.4375 k20.p21.zip</Uri> </CatalogDocument> <CatalogDocument> <DocumentId>Draw2D</DocumentId> <Uri>Documents\Draw2D\0048307.dxf.zip</Uri> </CatalogDocument> <CatalogDocument> <DocumentId>ToolImage</DocumentId> <Uri>Documents\ToolImage\142479.jpg.zip</Uri> </CatalogDocument> <CatalogDocument> <DocumentId>ToolImage</DocumentId> <Uri>Documents\ToolImage\142764.jpg.zip</Uri> </CatalogDocument> </Documents> </CatalogTool> <CatalogTool> <ToolID>RA411.5-3034D0.4531 K20</ToolID> <GTCGeneric>DRLFSS</GTCGeneric> <GTCVendorSpecific>DRLFSS</GTCVendorSpecific> <CatalogSpecificNode /> <LifeCycleState>new</LifeCycleState> <TimeStamp>2014-06-27T15:45:56.363</TimeStamp> <DocumentTimeStamp>2014-06-27T15:45:56.363</DocumentTimeStamp> <Documents> <CatalogDocument> <DocumentId>P21</DocumentId> <Uri>Documents\P21\ra411.5-3034d0.4531 k20.p21.zip</Uri> </CatalogDocument> <CatalogDocument> <DocumentId>Draw2D</DocumentId> <Uri>Documents\Draw2D\0048309.dxf.zip</Uri> </CatalogDocument> <CatalogDocument> <DocumentId>ToolImage</DocumentId> <Uri>Documents\ToolImage\142479.jpg.zip</Uri> </CatalogDocument> <CatalogDocument> <DocumentId>ToolImage</DocumentId> <Uri>Documents\ToolImage\142762.jpg.zip</Uri> </CatalogDocument> </Documents> </CatalogTool>
Решение задачи: «Парсинг большого XML документа»
textual
Листинг программы
XmlDocument doc = new XmlDocument(); doc.Load(path_to_file); var nodes = doc.SelectNodes("Tools/CatalogTool"); var ToolID = textBox1.Text; foreach (XmlElement node in nodes) { if (node["ToolID"].InnerText == ToolID) { foreach (XmlElement node2 in node) { // добавляем в treeview или listbox значения node2.InnerText } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д