ホームページ >バックエンド開発 >C++ >C++ での XML 処理スキル

C++ での XML 処理スキル

王林
王林オリジナル
2023-08-21 21:51:331464ブラウズ

XML は一般的に使用されるデータ交換形式であり、ネットワーク、データベース、構成ファイル、その他の分野で広く使用されています。 C では、TinyXML、RapidXML、Boost.PropertyTree などのサードパーティ ライブラリを通じて XML 処理を完了できます。この記事では、TinyXML ライブラリを使用して XML ファイルを処理するテクニックを紹介します。

  1. インストールと構成 TinyXML
    TinyXML は軽量の XML 解析ライブラリであり、最新バージョンは https://sourceforge.net/projects/tinyxml/files/tinyxml/ からダウンロードできます。ダウンロード後、解凍し、tinyxml.h と tinyxml.cpp の 2 つのファイルをプロジェクトのソース コード ディレクトリに配置し、プロジェクト内で適切に設定します。
  2. XML ファイルのロード
    TinyXML ライブラリを使用する場合、TiXmlDocument クラスを使用して XML ファイルを表し、LoadFile() メソッドを使用してファイルをロードする必要があります。簡単な例を次に示します。
#include "tinyxml.h"
#include <iostream>
using namespace std;

int main()
{
    TiXmlDocument xmlDocument;
    if (xmlDocument.LoadFile("example.xml"))
    {
        cout << "文件加载成功!" << endl;
    }
    else
    {
        cout << "文件加载失败,请检查文件路径是否正确。" << endl;
    }
    return 0;
}
  1. XML ノードのトラバース
    XML ファイルは、各ノードが要素または属性を表すツリー構造として表示できます。 TinyXML ライブラリは、XML 要素と属性をそれぞれ表す TiXmlElement クラスと TiXmlAttribute クラスを提供します。 FirstChildElement()、NextSiblingElement()、FirstChild()、NextSibling()、およびその他のメソッドを使用して、XML ノードを走査できます。 XML ファイルを走査する例を次に示します。
#include "tinyxml.h"
#include <iostream>
using namespace std;

int main()
{
    TiXmlDocument xmlDocument;
    if (xmlDocument.LoadFile("example.xml"))
    {
        TiXmlElement* rootElement = xmlDocument.RootElement();
        for (TiXmlElement* element = rootElement->FirstChildElement(); element != nullptr; element = element->NextSiblingElement())
        {
            cout << "元素名称:" << element->Value() << endl;
            for (TiXmlAttribute* attribute = element->FirstAttribute(); attribute != nullptr; attribute = attribute->Next())
            {
                cout << "属性名称:" << attribute->Name() << ",属性值:" << attribute->Value() << endl;
            }
        }
    }
    else
    {
        cout << "文件加载失败,请检查文件路径是否正确。" << endl;
    }
    return 0;
}
  1. XML ノードの更新
    SetValue() メソッドを使用してノードの値を変更し、SetAttribute( ) メソッドを使用してノードの値を変更します。 XML ファイルを更新する例を次に示します。
#include "tinyxml.h"
#include <iostream>
using namespace std;

int main()
{
    TiXmlDocument xmlDocument;
    if (xmlDocument.LoadFile("example.xml"))
    {
        TiXmlElement* element = xmlDocument.RootElement()->FirstChildElement("person")->FirstChildElement("name");
        element->SetValue("John Smith");
        TiXmlAttribute* attribute = element->FirstAttribute("lang");
        attribute->SetValue("en");
        xmlDocument.SaveFile("example.xml");
        cout << "更新成功!" << endl;
    }
    else
    {
        cout << "文件加载失败,请检查文件路径是否正确。" << endl;
    }
    return 0;
}
  1. XML ノードの作成
    TiXmlElement クラスのコンストラクターを使用して、新しい XML 要素を作成できます。 LinkEndChild() メソッドを使用して、親要素の子ノードに新しい要素を挿入します。以下は XML ファイルの作成例です:
#include "tinyxml.h"
#include <iostream>
using namespace std;

int main()
{
    TiXmlDocument xmlDocument;
    TiXmlElement* rootElement = new TiXmlElement("root");
    TiXmlElement* personElement = new TiXmlElement("person");
    TiXmlElement* nameElement = new TiXmlElement("name");
    nameElement->SetValue("Tom");
    nameElement->SetAttribute("lang", "en");
    personElement->LinkEndChild(nameElement);
    rootElement->LinkEndChild(personElement);
    xmlDocument.LinkEndChild(rootElement);
    xmlDocument.SaveFile("example.xml");
    cout << "创建成功!" << endl;
    return 0;
}

上記の操作に加えて、TinyXML ライブラリは、ノードの削除、ノードのクエリなど、XML ファイルを操作するための他のメソッドも提供します。 TinyXML ライブラリを使用すると、C による XML 処理が簡単かつシンプルになり、開発効率が向上します。

以上がC++ での XML 処理スキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。