Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

pugixml une bibliothèque de traitement XML légère avec prise en charge de XPATH

Résumé

Dans cet article, je vais vous expliquer comment utiliser pugixml pour traiter les données XML. Avec cette bibliothèque de traitement, vous pouvez utiliser un DOM analyseur pour lire et manipuler les nœuds et le XPATH notation pour interroger les nœuds.

Comment construire

Pour construire les sources, vous devez télécharger une version depuis https://github.com/zeux/pugixml/tags. Vous pouvez maintenant compiler la source avec le PLCnext chaîne d'outils donnée par Phoenix Contact . L'extrait de code suivant affichera le cmake script pour croiser la compilation.


    #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

Comment utiliser

Il faut d'abord intégrer le C++ header et la bibliothèque dans votre environnement de projet. Lorsque vous avez terminé, vous pouvez utiliser le pugixml traitement.

Charger un document


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

    ...

Parcourir les sous-nœuds à partir d'un nœud donné

Vous pouvez traverser via l'arborescence DOM et vous pouvez également manipuler les nœuds.


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

Utiliser XPATH

XPATH vous donne la liberté d'accéder très facilement aux nœuds et aux attributs.


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

Enregistrement du document XML

Vous pouvez enregistrer le document XML.


   doc.save_file("new_data.xml");

Plus d'informations

Si vous souhaitez obtenir plus d'informations sur pugixml vous pouvez consulter les liens suivants :

Licence

La bibliothèque est publiée sous licence MIT


Technologie industrielle

  1. arithmétique avec notation scientifique
  2. Q&R avec un architecte de solution Industrie 4.0
  3. Renesas :MCU RX72M avec prise en charge EtherCAT pour les applications industrielles
  4. Carte dans la bibliothèque de modèles standard C++ (STL) avec exemple d'impression
  5. Fonction calloc() dans la bibliothèque C avec l'EXEMPLE de programme
  6. Fonction free() dans la bibliothèque C :comment l'utiliser ? Apprendre avec l'exemple
  7. Python - Traitement XML
  8. Comment usiner des bijoux avec l'usinage CNC ?
  9. Linq la bibliothèque de traitement de liste pour C++