Я пытаюсь разобрать XML
с первым тегом как roottag
, но когда я выполняю приведенный ниже код, он всегда будет захватывать сегмент. Не уверен, что я делаю неправильно с BOOST_FOREACH
.синтаксический анализ xml с использованием boost
Выход я показано ниже:
entered in loop
In catch
обновление:
Я напечатал boost property tree
прочитан read_xml
она показывает мне, как
<?xml version="1.0" encoding="utf-8"?>
and the error I got is no such node
Код:
boost::property_tree::ptree pt1;
boost::property_tree::read_xml("/home/user/test.xml", pt1 );
try{
std::cout<<"\n entered in loop";
BOOST_FOREACH(boost::property_tree::ptree::value_type & node, pt1.get_child("roottag"))
{
std::cout<<"\n entered in loop 2";
//copy data
}
}
catch(...){
std::cout<<"\n In catch";
}
XML файл:
<?xml version="1.0" encoding="utf-8"?>
<roottag>
<shipTo country="US">
<name>Alice Smith</name>
<street>123 Maple Street</street>
<city>Mill Valley</city>
<state>CA</state>
<zip>90952</zip>
</shipTo>
<billTo country="US">
<name>Robert Smith</name>
<street>8 Oak Avenue</street>
<city>Old Town</city>
<state>PA</state>
<zip>95819</zip>
</billTo>
<comment>Hurry, my lawn is going wild!</comment>
<items>
<item partNum="872-AA">
<productName>Lawnmower</productName>
<quantity>1</quantity>
<USPrice>148.95</USPrice>
<comment>Confirm this is electric</comment>
</item>
<item partNum="926-AA">
<productName>Baby Monitor</productName>
<quantity>1</quantity>
<USPrice>39.98</USPrice>
<shipDate>1999-05-21</shipDate>
</item>
</items>
</roottag>
он работает с XML кодирования UTF-8, а? – Namitha
это может быть проблема с кодировкой xml? – Namitha
Да. И да. На оба вопроса – sehe