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:- GitHub:https://github.com/zeux/pugixml
- Site:https://pugixml.org/
Licença
A biblioteca é publicada sob a licença MIT
Tecnologia industrial
- Circuito com interruptor
- Aritmética com notação científica
- Perguntas e respostas com um arquiteto de soluções da indústria 4.0
- Renesas:RX72M MCUs com suporte EtherCAT para aplicações industriais
- Mapa na biblioteca de modelos padrão C++ (STL) com exemplo de impressão
- Função calloc() na biblioteca C com o programa EXEMPLO
- Função free() na biblioteca C:Como usar? Aprenda com o Exemplo
- Python - Processamento XML
- Como usinar joias com usinagem CNC?
- Linq a biblioteca de processamento de lista para C++