2011-10-24 34 views
0

libxml2を使ってxmlの属性を取得し、それをC++のstlマップに保存したいですか?あなたはすでにあなたのXML文字列/ファイルを解析されてきた、とすでにあなたがプロパティをマップするノードを持っている場合はlibxml2で属性を取得し、C++のstl mapに保存する方法は?

+0

あなたは何をしようとしているのか詳しく説明できますか?また、libXML2のどの解析APIを使用していますか? –

+0

ノードごとにすべての属性を取得し、マップに保存して、必要な特定のノードのすべての属性を簡単に取得したいと考えています。また、ノードごとにクラスを作成し、それをリストコンテナに保存します。 – joi

答えて

1

することは、それはこのようなものでなければなりません。もちろん

xmlNodePtr yournode = ...; 
std::map<std::string, std::string> yourmap; 

for(xmlAttrPtr attr = yournode->properties; attr != NULL; attr = attr->next) 
{ 
    yourmap[attr->name] = xmlGetProp(yournode, attr->name); 
} 

、名前空間は考慮されませんこの例では、あなたが名前空間を使用している場合は、代わりに次のことを試みることができる:

yourmap[attr->name] = xmlGetNsProp(yournode, attr->name, attr->ns->href); 

もちろん、徹底的にNULL値をチェックする必要があります。

関連する問題