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

pugixml XPATH をサポートする軽量の XML 処理ライブラリ

アブストラクト

この記事では pugixml の使い方を解説します XML データを処理します。この処理ライブラリを使用すると、DOM を使用できます ノードと XPATH を読み取って操作するパーサー クエリ ノードへの表記。

作り方

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


    #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

使い方

まず、C++ header を統合する必要があります プロジェクト環境のライブラリ。完了したら、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");

    //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 の使用

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


    //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 ドキュメントを保存しています

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


   doc.save_file("new_data.xml");

詳細

pugixml に関する詳細情報に興味がある場合 次のリンクを確認できます:

  • GitHub :https://github.com/zeux/pugixml
  • ウェブサイト:https://pugixml.org/

ライセンス

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


産業技術

  1. スイッチ付き回路
  2. 科学的記数法による算術
  3. 金属を使用した3D印刷のサポート構造—より簡単なアプローチ
  4. インダストリー4.0ソリューションアーキテクトとのQ&A
  5. ルネサス:産業用アプリケーション向けのEtherCATをサポートするRX72M MCU
  6. 印刷例を使用した C++ 標準テンプレート ライブラリ (STL) のマップ
  7. C ライブラリの calloc() 関数とプログラムの例
  8. C ライブラリの free() 関数:使い方は?例で学ぶ
  9. Python-XML 処理
  10. CNC加工でジュエリーを加工するには?
  11. C++ のリスト処理ライブラリ Linq