工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

pugixml - ネイティブXPATHサポートによる効率的なXMLパース

概要

この記事では、XMLデータを処理するためにpugixmlを使用する方法を説明します。この処理ライブラリを使用すると、DOMパーサーを使用してノードを読み取りおよび操作し、XPATH表記を使用してノードをクエリできます。

ビルド方法

ソースをビルドするには、https://github.com/zeux/pugixml/tags からリリースをダウンロードする必要があります。次に、Phoenix Contactから提供されるPLCnextツールチェーンを使用してソースをクロスコンパイルします。以下のコードスニペットは、クロスコンパイル用のcmakeスクリプトを示しています。

 # 環境変数をニーズに合わせて設定してください 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 

使用方法

まず、C++ ヘッダーとライブラリをプロジェクト環境に統合する必要があります。完了したら、pugixml処理を使用できます。

ドキュメントの読み込み

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

与えられたノードからサブノードを巡回

DOMツリーを巡回し、ノードを操作することもできます。

 pugi::xpath_node_set tools = doc.select_nodes("/Profile/Tools/Tool"); // サブノードを巡回 for (pugi::xml_node tool: tools) { std::cout << " " << tool.name(); // 属性を取得 for (pugi::xml_attribute attr: tool.attributes()) { std::cout << " " << attr.name() << "=" << attr.value(); } } 

XPATHの使用

XPATHを使用すると、ノードと属性に非常に簡単にアクセスできます。

 // ノードにアクセス pugi::xpath_node_set tools = doc.select_nodes("/Profile/Tools/Tool"); pugi::xpath_node_set all_tools = doc.select_nodes("//Tool"); // 属性にアクセス auto docIdNode = doc.select_node("@ID"); auto docIdNode_One = doc.select_node("//Tool[@ID==1]"); 

XMLドキュメントの保存

XMLドキュメントを保存できます。

 doc.save_file("new_data.xml"); 

詳細情報

pugixmlについてさらに情報を得たい場合は、以下のリンクを確認してください:

ライセンス

このライブラリはMITライセンスで公開されています。


産業技術

  1. 金属3Dプリントのサポート構造管理:エキスパートのヒントで後処理を効率化
  2. スイッチ付き回路:基本電気回路の実践ガイド
  3. 科学的記数法での乗算と除算:マスターする
  4. インダストリー4.0の洞察:Bosch.IOのベレナ・マユントケ氏へのQ&A - IoT、自動化、未来の工場
  5. CNCジュエリー加工の完全ガイド:マスターメイキング
  6. linq - モダンC++のための強力なリスト処理ライブラリ
  7. Renesas、内蔵EtherCAT搭載RX72M MCU発表 - 産業オートメーション向け
  8. C++ std::map完全ガイド:連想配列の実践的活用とコード例
  9. C言語のcalloc():ゼロ初期化メモリ割り当てと実践例
  10. C言語free()関数完全マスター:実践ガイドと例
  11. Python XML処理:相互運用可能なデータ管理ガイド