2011-09-16 11 views
0

スタンドC++を使ってCの文字列からxmlスキーマを生成する方法はありますか?私の現在のアプリケーションでは、コンマで区切られた文字列をソケットで送るサーバがあります。それは日付を解析するのが面倒です。この文字列を標準のXML形式に変換するためにこれを拡張したいと思います。私はクライアント側から簡単にデータを解析できるようになりました。標準C++を使用してCの文字列をxmlに変換する方法は?

C文字列: - 温度、低:20、高:30、現在:24

のxml: -

<temperature> 
    <low>20</low> 
    <high>30</high> 
    <current>24</current> 
</temperature>  

もっと勉強するためにいくつかのリンクや例を提供してください。ありがとう!

答えて

0

基本的には次の2つの別々のステップがあります。

  1. を文字列を解析し、そこから必要な情報を取得
  2. は、ステップ1の場合はXML

を書く私はいくつかを使用することをお勧めし正規表現ライブラリ、例えばBoost.Regex

はできるだけ早くあなたが解析された情報を持っているとして、あなたは単に

std::stringstream s; 
s << "<temperature><low>" << low << "</low><high>" << high << "</high>"; 
s << "<current>" << current << "</current>"; 
s << "</temperature>"; 

のような標準ストリームを使用して文字列にXMLを書いて、s.str()と結果の文字列を使用することができます。

1

C++には、標準ライブラリの一部としてXMLパーサーがありません。これを行うには、サードパーティライブラリが必要です。 MSXMLXercesは私が使った2つです。 Xercesはセットアップが少し面倒ですが、私はそれが2つの方がはるかにいいと言わなければなりません。

+0

[PugiXml](http://pugixml.org/)は非常にスマートで、無料で、高速で、DOMとXPathの実装を提供します。 – Simon

+0

多くのXML実装がありますが、私は実際に使用した2つだけを述べました。 –

関連する問題