Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Industrietechnik

pugixml – Effizientes XML-Parsing mit nativer XPATH-Unterstützung

Zusammenfassung

In diesem Artikel erkläre ich, wie man pugixml zur Verarbeitung von XML-Daten verwendet. Mit dieser Verarbeitungsbibliothek können Sie einen DOM-Parser zum Lesen und Manipulieren von Knoten und die XPATH-Notation zum Abfragen von Knoten verwenden.

Wie man baut

Um die Quellen zu bauen, müssen Sie ein Release von https://github.com/zeux/pugixml/tags herunterladen. Nun können Sie den Quellcode mit dem PLCnext-Toolchain, bereitgestellt von Phoenix Contact, cross-kompilieren. Der folgende Code-Snippet zeigt das cmake script für das Cross-Compiling.

# Bitte Umgebungsvariablen nach Bedarf setzen
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

Wie man verwendet

Zuerst müssen Sie den C++-header und die Bibliothek in Ihre Projektumgebung integrieren. Wenn Sie fertig sind, können Sie die pugixml-Verarbeitung nutzen.

Dokument laden

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

Unterknoten von einem gegebenen Knoten durchlaufen

Sie können über den DOM-Baum traversieren und die Knoten auch manipulieren.

pugi::xpath_node_set tools = doc.select_nodes("/Profile/Tools/Tool");
// Unterknoten durchlaufen
for (pugi::xml_node tool: tools) {
  std::cout << " " << tool.name();
  // Attribute abrufen
  for (pugi::xml_attribute attr: tool.attributes()) {
    std::cout << " " << attr.name() << "=" << attr.value();
  }
}

XPATH verwenden

XPATH gibt Ihnen die Freiheit, sehr einfach auf Knoten und Attribute zuzugreifen.

// Knoten zugreifen
pugi::xpath_node_set tools = doc.select_nodes("/Profile/Tools/Tool");
pugi::xpath_node_set all_tools = doc.select_nodes("//Tool");
// Attribute zugreifen
auto docIdNode = doc.select_node("@ID");
auto docIdNode_One = doc.select_node("//Tool[@ID==1]");

XML-Dokument speichern

Sie können das XML-Dokument speichern.

doc.save_file("new_data.xml");

Weitere Informationen

Wenn Sie an weiteren Informationen zu pugixml interessiert sind, können Sie folgende Links prüfen:

Lizenz

Die Bibliothek wird unter der MIT-Lizenz veröffentlicht.

Industrietechnik

  1. Schaltung mit Schalter: Praktischer Leitfaden zu grundlegenden elektrischen Schaltungen
  2. Multiplikation und Division mit wissenschaftlicher Notation meistern
  3. Industrie 4.0 Insights: Q&A mit Verena Majuntke von Bosch.IO zu IoT, Automatisierung und der Fabrik der Zukunft
  4. Renesas bringt RX72M MCUs mit integriertem EtherCAT für Industrial Automation
  5. std::map in C++ meistern: Umfassender Guide mit Code‑Beispielen
  6. calloc() in C: Null-initialisierte Speicherallokation mit praktischem Beispiel
  7. C's free() Funktion meistern: Praktischer Leitfaden & Beispiel
  8. Python XML-Verarbeitung: Leitfaden für interoperable Datenverwaltung
  9. CNC-Schmuckbearbeitung meistern: Ein kompletter Leitfaden
  10. Linq: Leistungsstarke Listenverarbeitungsbibliothek für modernes C++