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 – Efficiënte XML-Parsing met Native XPATH-ondersteuning

Samenvatting

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

Hoe te Bouwen

Om de bronnen te bouwen, moet u een release downloaden van https://github.com/zeux/pugixml/tags. Nu kunt u de bron cross-compileren met de PLCnext toolchain geleverd door Phoenix Contact. De volgende code-snippet toont het cmake-script om te cross-compileren.

# Stel de omgevingsvariabelen in naar uw behoeften
cmake \
-G "Unix Makefiles" \
-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 u de C++ header en de bibliotheek in uw projectomgeving integreren. Wanneer u klaar bent, kunt u de pugixml-verwerking gebruiken.

Een Document Laden

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

Subknooppunten Afgaan vanaf een Gegeven Knooppunt

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

pugi::xpath_node_set tools = doc.select_nodes("/Profile/Tools/Tool");
// subknooppunten afgaan
for (pugi::xml_node tool: tools) {
    std::cout << " " << tool.name();
    // attributen ophalen
    for (pugi::xml_attribute attr: tool.attributes()) {
        std::cout << " " << attr.name() << "=" << attr.value();
    }
}

XPATH Gebruiken

XPATH geeft u de vrijheid om knooppunten en attributen heel gemakkelijk te benaderen.


// knooppunt benaderen
pugi::xpath_node_set tools = doc.select_nodes("/Profile/Tools/Tool");
pugi::xpath_node_set all_tools = doc.select_nodes("//Tool");
// attributen benaderen
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, kunt u de volgende links bekijken:

Licentie

De bibliotheek is gepubliceerd onder MIT-licentie.

Industriële technologie

  1. Metaal 3D-printen Vereenvoudigen: Expert Tips voor Supportstructuurbeheer
  2. Circuit met een schakelaar: Praktische gids voor basis elektrische circuits
  3. Vermenigvuldigen en delen met wetenschappelijke notatie beheersen
  4. Industry 4.0 Inzichten: Q&A met Verena Majuntke van Bosch.IO over IoT, Automatisering en de Toekomstfabriek
  5. Meesteren van CNC-sieradenbewerking: een complete gids
  6. Linq: Krachtige Lijstverwerkingsbibliotheek voor Modern C++
  7. Renezas lanceert RX72M MCUs met ingebouwde EtherCAT voor industriële automatisering
  8. std::map in C++ Onder de Knie: Uitgebreide Handleiding met Code‑Voorbeelden
  9. calloc() in C: Nul-geïnitialiseerde geheugenallocatie en een praktisch voorbeeld
  10. Beheersing van C's free() functie: Praktische gids & voorbeeld
  11. Python XML Verwerking: Gids voor Interoperabele Databeheer