Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Industriële technologie

pugixml een lichtgewicht XML-verwerkingsbibliotheek met XPATH-ondersteuning

Abstract

In dit artikel leg ik uit hoe je pugixml . gebruikt XML-gegevens te verwerken. Met deze verwerkingsbibliotheek kunt u een DOM . gebruiken parser om knooppunten te lezen en te manipuleren en de XPATH notatie naar nodes opvragen.

Hoe te bouwen

Om de bronnen te bouwen, moet je een release downloaden van https://github.com/zeux/pugixml/tags. Nu kunt u de bron crosscompileren met de PLCnext toolchain gegeven door Phoenix Contact . Het volgende codefragment toont de cmake script om te crosscompileren.


    #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

Hoe te gebruiken

Eerst moet je de C++ header . integreren en de bibliotheek in uw projectomgeving. Als je klaar bent, kun je de pugixml . gebruiken verwerking.

Een document laden


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

    ...

Subknooppunten van een bepaald knooppunt doorkruisen

U kunt doorkruisen via de DOM-boom en u kunt ook de knooppunten manipuleren.


    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 gebruiken

XPATH geeft je de vrijheid om heel gemakkelijk toegang te krijgen tot nodes en attributen.


    //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-document opslaan

U kunt het XML-document opslaan.


   doc.save_file("new_data.xml");

Meer informatie

Als u geïnteresseerd bent in meer informatie over pugixml u kunt de volgende links bekijken:

  • GitHub:https://github.com/zeux/pugixml
  • Website:https://pugixml.org/

Licentie

De bibliotheek is gepubliceerd onder MIT-licentie


Industriële technologie

  1. Circuit met een schakelaar
  2. Rekenen met wetenschappelijke notatie
  3. Ondersteunende structuren voor 3D-printen met metaal — een eenvoudigere aanpak
  4. Vraag en antwoord met een Industry 4.0 Solution Architect
  5. Renesas:RX72M MCU's met EtherCAT-ondersteuning voor industriële toepassingen
  6. Kaart in C++ Standard Template Library (STL) met afdrukvoorbeeld
  7. calloc() Functie in C-bibliotheek met programma VOORBEELD
  8. free() Functie in C-bibliotheek:Hoe te gebruiken? Leer met voorbeeld
  9. Python - XML-verwerking
  10. Hoe sieraden te bewerken met CNC-bewerking?
  11. Linq de lijstverwerkingsbibliotheek voor C++