loadxml: if argument "targetnode" isn't defined, return the file data in
the argument tree under "data". This is useful in cases where the file data are only needed temporarily and shouldn't remain in the main tree.
This commit is contained in:
parent
d11e18f9a7
commit
ff454131d5
1 changed files with 12 additions and 9 deletions
|
@ -1312,7 +1312,8 @@ do_hud_init2(const SGPropertyNode *)
|
|||
/**
|
||||
* An fgcommand to allow loading of xml files via nasal,
|
||||
* the xml file's structure will be made available within
|
||||
* a (definable) property tree node
|
||||
* a property tree node defined under argument "targetnode",
|
||||
* or in the given argument tree under "data" otherwise.
|
||||
*
|
||||
* @param filename a string to hold the complete path & filename of a XML file
|
||||
* @param targetnode a string pointing to a location within the property tree
|
||||
|
@ -1320,14 +1321,16 @@ do_hud_init2(const SGPropertyNode *)
|
|||
*/
|
||||
|
||||
static bool
|
||||
do_load_xml_to_proptree(const SGPropertyNode * node)
|
||||
do_load_xml_to_proptree(const SGPropertyNode * arg)
|
||||
{
|
||||
// SG_LOG(SG_GENERAL, SG_ALERT, "fgcommand loadxml executed");
|
||||
SGPropertyNode *a = const_cast<SGPropertyNode *>(arg);
|
||||
SGPropertyNode *targetnode;
|
||||
if (a->hasValue("targetnode"))
|
||||
targetnode = fgGetNode(a->getStringValue("targetnode"), true);
|
||||
else
|
||||
targetnode = a->getNode("data", true);
|
||||
|
||||
SGPropertyNode * targetnode;
|
||||
targetnode = fgGetNode(node->getNode("targetnode")->getStringValue(),true);
|
||||
|
||||
const char *filename = node->getNode("filename")->getStringValue();
|
||||
const char *filename = a->getNode("filename")->getStringValue();
|
||||
try {
|
||||
fgLoadProps(filename, targetnode);
|
||||
} catch (const sg_exception &e) {
|
||||
|
|
Loading…
Reference in a new issue