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

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

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

Доброго времени суток! Помогите пожалуйста спарсить XML файл такого рода. Вот его кусочек:
<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>
Сам файл около 16МБ. Нужно среди всех ToolID найти тот, который будет задан в textbox и вывести всю информацию (значения тегов) в treeview или listbox. Прочитал кучу примеров, но так ничего толкового и не нашёл. Help please!!!

Решение задачи: «Парсинг большого 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
                    }
                }
            }

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


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

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

12   голосов , оценка 4.333 из 5
Похожие ответы