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");
詳細h2>
pugixml
に関する詳細情報に興味がある場合 次のリンクを確認できます:
- GitHub :https://github.com/zeux/pugixml
- ウェブサイト:https://pugixml.org/
ライセンス
ライブラリは MIT ライセンスの下で公開されています
産業技術