Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

pugixml uma biblioteca de processamento XML leve com suporte XPATH

Resumo


Neste artigo vou explicar como usar pugixml para processar dados XML. Com esta biblioteca de processamento você pode usar um DOM analisador para ler e manipular nós e o XPATH notação para consultar nós.

Como construir


Para construir as fontes, você precisa baixar uma versão de https://github.com/zeux/pugixml/tags. Agora você pode compilar o código-fonte com o PLCnext cadeia de ferramentas fornecida por Phoenix Contact . O trecho de código a seguir mostrará o cmake script para compilação cruzada.

    #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

Como usar


Primeiro você tem que integrar o C++ header e a biblioteca em seu ambiente de projeto. Quando terminar, você pode usar o pugixml em processamento.

Carregando um documento

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

    ...


Atravessando subnós de um determinado nó

Você pode percorrer através da árvore DOM e também pode manipular os nós.

    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();
        }
    }


Usando XPATH

XPATH lhe dá a liberdade de acessar nós e atributos com muita facilidade.

    //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]");


Salvando documento XML

Você pode salvar o documento XML.

   doc.save_file("new_data.xml");

Mais informações


Se você estiver interessado em obter mais informações sobre pugixml você pode verificar os seguintes links:

Licença


A biblioteca é publicada sob a licença MIT

Tecnologia industrial

  1. Circuito com interruptor
  2. Aritmética com notação científica
  3. Perguntas e respostas com um arquiteto de soluções da indústria 4.0
  4. Renesas:RX72M MCUs com suporte EtherCAT para aplicações industriais
  5. Mapa na biblioteca de modelos padrão C++ (STL) com exemplo de impressão
  6. Função calloc() na biblioteca C com o programa EXEMPLO
  7. Função free() na biblioteca C:Como usar? Aprenda com o Exemplo
  8. Python - Processamento XML
  9. Como usinar joias com usinagem CNC?
  10. Linq a biblioteca de processamento de lista para C++