43{
44 sg_ifstream infile;
45 SGPath filename(XML_filename);
46 if (!filename.isNull()) {
47 if (filename.extension().empty())
48 filename.concat(".xml");
49 infile.open(filename);
50 if ( !infile.is_open()) {
51 if (verbose) {
52 FGLogging log(LogLevel::ERROR);
53 log << "Could not open file: " << filename << "\n";
54 }
55 return nullptr;
56 }
57 } else {
58 FGLogging log(LogLevel::ERROR);
59 log << "No filename given.\n";
60 return nullptr;
61 }
62 readXML(infile, fparse, filename.utf8Str());
63 Element* document = fparse.GetDocument();
64 infile.close();
65 return document;
66}