ここにいる誰かが xerces-c の使用についてある程度の知識を持っていることを願っています。有効な XML パケットを含む文字列があります。ただし、XML とは関係のない主要なデータがいくつかありました。xerces-c SAXParser で先頭のデータを無視し、最初に見つかった有効な XML を単純に解析することは可能ですか? 以下のように、DTD を使用せずに非常に単純なセットアップを使用しています。
SAXParser* lp_parser(0);
MySaxHandler l_handler;
lp_parser->setDocumentHandler((DocumentHandler *)&l_handler);
lp_parser->setDoNamespaces(false);
lp_parser->setDoNamespaces(false);
lp_parser->setDoSchema(false);
lp_parser->setValidationSchemaFullChecking(false);
MemBufInputSource lp_membuf((const XMLByte*)l_data.c_str(),
l_data.size(),
"My XML request",
false);
lp_parser->parse(lp_membuf);
l_data はstd::string
、初期データを含む XML パケットを含むもので、MySaxHandler
関心のあるいくつかのタグを保存する場所です。もちろん、自分で XML の開始を見つけるまでスキップできますが、それは私が望んでいた答えではありません。