16,215
社区成员
发帖
与我相关
我的任务
分享
<Mod_EntityMedia>
<ReturnCode>200</ReturnCode>
<ListEntityMedia>
<EntityMedia>
<MediaID>0318a383320248d3af20bebd175d2988</MediaID>
<MediaName>高!高!</MediaName>
<SingerName>张学友</SingerName>
</EntityMedia>
<EntityMedia>
<MediaID>0318a383320248d3af20bebd175d2988</MediaID>
<MediaName>复活</MediaName>
<SingerName>张学友</SingerName>
</EntityMedia>
........... //中间都是这个模式所以省略100行
<EntityMedia>
<MediaID>0318a383320248d3af20bebd175d2988</MediaID>
<MediaName>一次一次</MediaName>
<SingerName>周华健</SingerName>
</EntityMedia>
</ListEntityMedia>
</Mod_EntityMedia>
QList< ApiRequest > MetaSdkParser::getApiRequests()
{
QList<ApiRequest> apiRequests;
QDomNodeList apiNodes = root.elementsByTagName("api");
for (int i = 0; i < apiNodes.size(); i++) {
QDomNode apiNode = apiNodes.at(i);
ApiRequest tmp;
tmp.setName(apiNode.firstChildElement("name").text());
tmp.setDesc(apiNode.firstChildElement("desc").text());
QDomElement requestNode = apiNode.firstChildElement("request");
QDomNodeList paramNodes = requestNode.elementsByTagName("param");
for (int j = 0; j < paramNodes.size(); j++) {
QDomNode paramNode = paramNodes.at(j);
ApiField field;
field.setName(paramNode.firstChildElement("name").text());
field.setDesc(paramNode.firstChildElement("desc").text());
..........
//appendData是指读出来的xml字符串
void loadAppendData(QString appendData)
{
QDomDocument doc;
if(!doc.setContent(appendData.toUtf8()))
{
return;
}
QDomElement domEle = doc.documentElement();
QDomNode domNode = domEle.firstChild();
while(!domNode.isNull())
{
if(domNode.isElement())
{
QDomElement e = domNode.toElement();
//在这里处理你的节点
if(e.tagName()=="你的节点1")
{
QString text1 = e.text();
}
else if(e.tagName()=="你的节点2")
{
int num1 = e.text().toInt();
}
}
domNode = domNode.nextSibling();
}
}
以上是我处理xml的一段代码,希望对你有用吧using boost::property_tree::ptree;
ptree pt;
read_xml(fileName, pt);
BOOST_FOREACH(ptree::value_type &v, pt.get_child("xx"))
{
if (v.first == "xx")
{
_str_xx1 = v.second.get<std::string>("<xmlattr>.xx");
BOOST_FOREACH(ptree::value_type &v2, v.second)
{
if (v2.first == "xx")
{
_str_xx2 = v2.second.get<std::string>("<xmlattr>.xx");
//省略
}
}
}
}