本文整理汇总了C++中XmlDoc::Children方法的典型用法代码示例。如果您正苦于以下问题:C++ XmlDoc::Children方法的具体用法?C++ XmlDoc::Children怎么用?C++ XmlDoc::Children使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XmlDoc
的用法示例。
在下文中一共展示了XmlDoc::Children方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoginMessage
//////////////////////////////////////////////////////////////////////////
//check whether user that request to log in from client side is in the repository
//if so return Login type message
//else return warning.
Message MessageHandler::LoginMessage()
{
strVal path = _repositoryPath+"Users.xml";
XmlDoc doc;
if (!doc.LoadXmlFile(path))
return WarningMessage("Users file broken, please contact administrator.");
strVal name = GetMessageName();
strVal tag = "User";
strVal content;
xmlRep rep;
vector<XmlDoc> users = doc.Children(tag);
for (size_t i=0; i<users.size(); ++i)
{
strVal userName = users[i].Children("Name")[0].InnerText();
if (userName == name)
{
_loginUsers[_curIP] = name;
return _msg;
}
}
return WarningMessage("User is not in the repository.");
}
示例2: GetMessageName
//////////////////////////////////////////////////////////////////////////
//Extract InnerText of Name tag in message
strVal MessageHandler::GetMessageName()
{
strVal tag = "Name";
XmlDoc doc = _msg.Doc();
vector<XmlDoc> names = doc.Children(tag);
if (names.size() <=0)return "";
strVal name = names[0].InnerText();
return names[0].InnerText();
}
示例3: PackageMessage
//////////////////////////////////////////////////////////////////////////
//generate a package type message
Message MessageHandler::PackageMessage()
{
const strVal name = GetMessageName();
strVal path = _repositoryPath+_metaFolder+name+".xml";
XmlDoc doc;
strVal prefix = "\n ";
if (!doc.LoadXmlFile(path))
return WarningMessage(name+": the package is not in the repository.");
vector<XmlDoc> refs ;
strVal packInfo;
if((refs=doc.Children("head")).size()>0)
packInfo+=prefix+refs[0].InnerText();
if((refs=doc.Children("implement")).size()>0)
packInfo+=prefix+refs[0].InnerText();
if (packInfo.size()>0) packInfo = "Package files: " + packInfo;
else return WarningMessage("Package metadata file broken, please administrator.");
strVal dependency="\n \nDependencies: ";
if ((refs=doc.Children("references")).size()>0)
if ((refs=refs[0].Children("reference")).size()>0)
for(size_t i=0; i<refs.size(); ++i)
dependency+=prefix+refs[i].InnerText();
strVal owner="\n \nPackage Owner: ";
if ((refs=doc.Children("owner")).size()>0)
owner+=prefix+refs[0].InnerText();
xmlRep rep(xmlElem("Name",packInfo+dependency+owner));
rep.makeParent(MsgType::EnumToString(MsgType::Package));
return Message(rep.xmlStr());
}
示例4: OKtoCheckin
//////////////////////////////////////////////////////////////////////////
//check whether uploaded file is not in repository
//or user own the file
bool MessageHandler::OKtoCheckin(strVal fileName)
{
fileName = GetKeyName(fileName)+".xml";
XmlDoc doc;
//package not in the repository, ok to check in
if (!doc.LoadXmlFile(_repositoryPath+_metaFolder+fileName))
if (!doc.LoadXmlFile(_repositoryPath+_checkinFoler+fileName))
return true;
vector<XmlDoc> elems = doc.Children("owner");
if (elems.size()<=0)return false;
//check in depend on whether user is package owner
strVal owner = elems[0].InnerText();
return owner == _curUser;
}
示例5: DependencyMessage
//////////////////////////////////////////////////////////////////////////
//generate a Dependency type message
Message MessageHandler::DependencyMessage()
{
const strVal name = GetMessageName();
if (name == "*.*")return AllPackageMessage();
strVal path = _repositoryPath+_metaFolder+name+".xml";
strVal tag = "references";
strVal content;
XmlDoc doc;
xmlRep rep;
if (!doc.LoadXmlFile(path))
return WarningMessage(name+": the package is not in the repository.");
vector<XmlDoc> refs = doc.Children(tag);
if (refs.size()<=0)
return WarningMessage(name+": the package does not depend on other package.");
//find all dependency children under dependency tag
refs = refs[0].Children();
if (refs.size()<=0)
return WarningMessage(name+": the package does not depend on other package.");
tag = "Name";
for (size_t i=0; i<refs.size(); ++i)
{
content = refs[i].InnerText();
content = GetKeyName(content);
xmlElem elem(tag,content);
rep.addSibling(elem);
}
tag = MsgType::EnumToString(MsgType::Dependency);
rep.makeParent(tag);
return Message(rep.xmlStr());
}