Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

pugixml — облегченная библиотека обработки XML с поддержкой XPATH.

Аннотация

В этой статье я объясню, как использовать pugixml для обработки XML-данных. С этой библиотекой обработки вы можете использовать DOM синтаксический анализатор для чтения и управления узлами и XPATH нотация для запроса узлов.

Как построить

Чтобы собрать исходники, вам нужно скачать релиз с https://github.com/zeux/pugixml/tags. Теперь вы можете кросскомпилировать исходный код с помощью PLCnext. набор инструментов, заданный Phoenix Contact . Следующий фрагмент кода покажет cmake script для кросскомпиляции.


    #Please set the environment variables to your needs 

    cmake \
    -G "Unix Malkefiles" \
    -D CMAKE_BUILD_TYPE=Release \
    -D BUILD_TESTING=OFF \
    -D BUILD_SHARED_LIBS=ON \
    -D "CMAKE_STAGING_PREFIX=${CMAKE_STAGING_PREFIX}" \
    -D "CMAKE_INSTALL_PREFIX=${CMAKE_STAGING_PREFIX}" \
-D "CMAKE_TOOLCHAIN_FILE=${ARP_TOOLCHAIN_FILE}" \
-D "ARP_TOOLCHAIN_ROOT= ${ARP_TOOLCHAIN_ROOT}" \ -D BUILD_TESTS=OFF \ -S "${SOURCE_DIRECTORY}" \ -B "${BUILD_DIRECTORY}" cmake --build "${BUILD_DIRECTORY}" --target install

Как использовать

Сначала вам нужно интегрировать C++ header и библиотека в среде вашего проекта. Когда вы закончите, вы можете использовать pugixml обработка.

Загрузка документа


    pugi::xml_document doc;
    pugi::xml_parse_result result = doc.load_file("data.xml");

    ...

Обход подузлов от заданного узла

Вы можете перемещаться по дереву DOM, а также манипулировать узлами.


    pugi::xpath_node_set tools = doc.select_nodes("/Profile/Tools/Tool");

    //traversing subnodes
    for (pugi::xml_node tool: tools)
    {
        std::cout << " " << tool.name();

        //getting attributes
        for (pugi::xml_attribute attr: tool.attributes())
        {
            std::cout << " " << attr.name() << "=" << attr.value();
        }
    }

Использование XPATH

XPATH дает вам очень простой доступ к узлам и атрибутам.


    //accessing node
    pugi::xpath_node_set tools = doc.select_nodes("/Profile/Tools/Tool");
    pugi::xpath_node_set all_tools = doc.select_nodes("//Tool");

    //accessing attibutes
    auto docIdNode = doc.select_node("@ID");
    auto docIdNode_One = doc.select_node("//Tool[@ID==1]");

Сохранение XML-документа

Вы можете сохранить XML-документ.


   doc.save_file("new_data.xml");

Дополнительная информация

Если вы хотите получить дополнительную информацию о pugixml вы можете проверить следующие ссылки:

Лицензия

Библиотека опубликована под лицензией MIT


Промышленные технологии

  1. Схема с переключателем
  2. Арифметика с научной записью
  3. Вопросы и ответы с архитектором решений Индустрии 4.0
  4. Renesas:микроконтроллеры RX72M с поддержкой EtherCAT для промышленных приложений
  5. Карта в стандартной библиотеке шаблонов C++ (STL) с примером печати
  6. Функция calloc() в библиотеке C с программой ПРИМЕР
  7. Функция free() в библиотеке C:как использовать? Учитесь на примере
  8. Python — обработка XML
  9. Как обрабатывать ювелирные изделия с помощью станков с ЧПУ?
  10. Linq библиотека обработки списков для C++