本文整理汇总了C++中XMLDocument::PrintError方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLDocument::PrintError方法的具体用法?C++ XMLDocument::PrintError怎么用?C++ XMLDocument::PrintError使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLDocument
的用法示例。
在下文中一共展示了XMLDocument::PrintError方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parse
bool MCTriggers::parse() {
XMLDocument doc;
if (doc.LoadFile(mXmlFile.c_str())) {
doc.PrintError();
return false;
}
const XMLElement* root = doc.FirstChildElement("triggers");
if (! root)
return false;
const XMLElement* path = root->FirstChildElement("path");
for (; path; path = path->NextSiblingElement("path")) {
parsePathElement(path);
}
return true;
}
示例2: current
set<string> compareWithStorageFile(const string& path) {
map<string, time_t> storage;
XMLDocument doc;
if (doc.LoadFile(gStorage.c_str())!=XML_NO_ERROR) {
cerr << "Error reading XML!" << endl;
doc.PrintError();
}
auto root = doc.FirstChildElement();
auto file = root->FirstChildElement();
while (file) {
string name = file->FirstAttribute()->Value();
auto time = file->Attribute("last_modif");
storage[name] = stoll(time);
file = file->NextSiblingElement();
}
set<string> dst;
fs::path current(path);
fs::recursive_directory_iterator end;
cout << "Go to directory iterator: " << current.string() << " -> " << endl;
for (fs::recursive_directory_iterator item(current); item != end; ++item) {
if (!fs::is_directory(item->status())) {
fs::path filename = item->path();
time_t time = fs::last_write_time(filename);
auto sfile = filename.string().substr(current.string().size());
if (storage.count(sfile)>0) {
if (storage[sfile]!=time) {
dst.insert(sfile);
cout << "[mod] " << sfile << endl;
}
}
else {
dst.insert(sfile);
cout << "[new] " << sfile << endl;
}
}
}
return dst;
}
示例3: loadSceneFromFile
// TODO move this function to the constructor ?
void Scene::loadSceneFromFile(const char* filename){
XMLDocument doc;
doc.LoadFile(filename);
// Check for errors in the XML
if (doc.ErrorID() != 0)
{
doc.PrintError();
}
XMLElement *music = doc.FirstChildElement("scene");
pathMusic = music->FirstChildElement("music")->GetText();
XMLElement *end = doc.FirstChildElement("scene");
if(end->FirstChildElement("end")) this->end = atoi(end->FirstChildElement("end")->GetText());
else this->end = 0;
loadModels(doc);
loadDialogues(doc);
loadLights(doc);
loadRoom(doc);
}
示例4: main
//.........这里部分代码省略.........
element->LastChildElement()->DeleteAttribute( "attrib" );
XMLTest( "Programmatic DOM", true, doc->FirstChildElement()->FirstChildElement()->BoolAttribute( "attrib" ) );
int value = 10;
int result = doc->FirstChildElement()->LastChildElement()->QueryIntAttribute( "attrib", &value );
XMLTest( "Programmatic DOM", result, (int)XML_NO_ATTRIBUTE );
XMLTest( "Programmatic DOM", value, 10 );
doc->Print();
{
XMLPrinter streamer;
doc->Print( &streamer );
printf( "%s", streamer.CStr() );
}
{
XMLPrinter streamer( 0, true );
doc->Print( &streamer );
XMLTest( "Compact mode", "<element><sub attrib=\"1\"/><sub/></element>", streamer.CStr(), false );
}
doc->SaveFile( "./resources/out/pretty.xml" );
doc->SaveFile( "./resources/out/compact.xml", true );
delete doc;
}
{
// Test: Dream
// XML1 : 1,187,569 bytes in 31,209 allocations
// XML2 : 469,073 bytes in 323 allocations
//int newStart = gNew;
XMLDocument doc;
doc.LoadFile( "resources/dream.xml" );
doc.SaveFile( "resources/out/dreamout.xml" );
doc.PrintError();
XMLTest( "Dream", "xml version=\"1.0\"",
doc.FirstChild()->ToDeclaration()->Value() );
XMLTest( "Dream", true, doc.FirstChild()->NextSibling()->ToUnknown() ? true : false );
XMLTest( "Dream", "DOCTYPE PLAY SYSTEM \"play.dtd\"",
doc.FirstChild()->NextSibling()->ToUnknown()->Value() );
XMLTest( "Dream", "And Robin shall restore amends.",
doc.LastChild()->LastChild()->LastChild()->LastChild()->LastChildElement()->GetText() );
XMLTest( "Dream", "And Robin shall restore amends.",
doc.LastChild()->LastChild()->LastChild()->LastChild()->LastChildElement()->GetText() );
XMLDocument doc2;
doc2.LoadFile( "resources/out/dreamout.xml" );
XMLTest( "Dream-out", "xml version=\"1.0\"",
doc2.FirstChild()->ToDeclaration()->Value() );
XMLTest( "Dream-out", true, doc2.FirstChild()->NextSibling()->ToUnknown() ? true : false );
XMLTest( "Dream-out", "DOCTYPE PLAY SYSTEM \"play.dtd\"",
doc2.FirstChild()->NextSibling()->ToUnknown()->Value() );
XMLTest( "Dream-out", "And Robin shall restore amends.",
doc2.LastChild()->LastChild()->LastChild()->LastChild()->LastChildElement()->GetText() );
//gNewTotal = gNew - newStart;
}
{
const char* error = "<?xml version=\"1.0\" standalone=\"no\" ?>\n"
"<passages count=\"006\" formatversion=\"20020620\">\n"
" <wrong error>\n"
"</passages>";
XMLDocument doc;
示例5: main
//.........这里部分代码省略.........
XMLTest( "Programmatic DOM", "& Text!",
doc->FirstChildElement()->LastChildElement( "sub" )->FirstChild()->ToText()->Value() );
// And now deletion:
element->DeleteChild( sub[2] );
doc->DeleteNode( comment );
element->FirstChildElement()->SetAttribute( "attrib", true );
element->LastChildElement()->DeleteAttribute( "attrib" );
XMLTest( "Programmatic DOM", true, doc->FirstChildElement()->FirstChildElement()->BoolAttribute( "attrib" ) );
int value = 10;
int result = doc->FirstChildElement()->LastChildElement()->QueryIntAttribute( "attrib", &value );
XMLTest( "Programmatic DOM", result, XML_NO_ATTRIBUTE );
XMLTest( "Programmatic DOM", value, 10 );
doc->Print();
XMLPrinter streamer;
doc->Print( &streamer );
printf( "%s", streamer.CStr() );
delete doc;
}
{
// Test: Dream
// XML1 : 1,187,569 bytes in 31,209 allocations
// XML2 : 469,073 bytes in 323 allocations
//int newStart = gNew;
XMLDocument doc;
doc.LoadFile( "dream.xml" );
doc.SaveFile( "dreamout.xml" );
doc.PrintError();
XMLTest( "Dream", "xml version=\"1.0\"",
doc.FirstChild()->ToDeclaration()->Value() );
XMLTest( "Dream", true, doc.FirstChild()->NextSibling()->ToUnknown() ? true : false );
XMLTest( "Dream", "DOCTYPE PLAY SYSTEM \"play.dtd\"",
doc.FirstChild()->NextSibling()->ToUnknown()->Value() );
XMLTest( "Dream", "And Robin shall restore amends.",
doc.LastChild()->LastChild()->LastChild()->LastChild()->LastChildElement()->GetText() );
XMLTest( "Dream", "And Robin shall restore amends.",
doc.LastChild()->LastChild()->LastChild()->LastChild()->LastChildElement()->GetText() );
XMLDocument doc2;
doc2.LoadFile( "dreamout.xml" );
XMLTest( "Dream-out", "xml version=\"1.0\"",
doc2.FirstChild()->ToDeclaration()->Value() );
XMLTest( "Dream-out", true, doc2.FirstChild()->NextSibling()->ToUnknown() ? true : false );
XMLTest( "Dream-out", "DOCTYPE PLAY SYSTEM \"play.dtd\"",
doc2.FirstChild()->NextSibling()->ToUnknown()->Value() );
XMLTest( "Dream-out", "And Robin shall restore amends.",
doc2.LastChild()->LastChild()->LastChild()->LastChild()->LastChildElement()->GetText() );
//gNewTotal = gNew - newStart;
}
{
const char* error = "<?xml version=\"1.0\" standalone=\"no\" ?>\n"
"<passages count=\"006\" formatversion=\"20020620\">\n"
" <wrong error>\n"
"</passages>";
XMLDocument doc;
示例6: load
int ColladaParser::load( const char* filename, Scene* scene ) {
ifstream in( filename );
if ( !in.is_open() ) {
return -1;
} in.close();
XMLDocument doc;
doc.LoadFile( filename );
if ( doc.Error() ) {
doc.PrintError();
exit( 1 );
}
XMLElement* root = doc.FirstChildElement("COLLADA");
if ( !root ) {
stat("Error: not a COLLADA file!")
exit( 1 );
} else {
stat("Loading COLLADA file...");
}
// save COLLADA library entry points
e_scenes = root->FirstChildElement("library_visual_scenes");
e_cameras = root->FirstChildElement("library_cameras" );
e_lights = root->FirstChildElement("library_lights" );
e_geometries = root->FirstChildElement("library_geometries" );
e_materials = root->FirstChildElement("library_materials" );
e_effects = root->FirstChildElement("library_effects" );
// load assets
XMLElement* e_asset = root->FirstChildElement("asset");
if ( e_asset ) {
// NOTE (sky):
// We probably should take care of different Y directions here if we want
// to support exports from different packages.
XMLElement* up_axis = e_asset->FirstChildElement("up_axis");
stat("Y direction: "<< up_axis->GetText());
}
// load scenes -
XMLElement* e_scene = root->FirstChildElement("scene");
if ( e_scene ) {
XMLElement* e_instance = e_scene->FirstChildElement("instance_visual_scene");
// NOTE (sky):
// COLLADA seems to support multiple scenes in one file
// right now the parser only loads the first scene
// load all scenes
// while (e_instance) {
// // load a single scene
// e_instance = e_scene->NextSiblingElement("instance_visual_scene");
// }
// load first scene
if (e_instance) {
const char* instance_url = e_instance->Attribute("url");
if ( instance_url ) {
// look for scene in scene library
string instance_id = instance_url + 1;
XMLElement* e_instance = find_instance( e_scenes, instance_id );
if ( e_instance ) {
stat("Loading scene: " << instance_id);
parseScene(e_instance, *scene);
} else {
stat("Error: undefined scene instance: " << instance_id);
return -1;
}
} else {
// Note (Sky):
// not sure if there are non-indirection encodings but
// if there is then it should be handled here
return 0;
}
}
}
return 0;
}