diff --git a/src/xml/expr_arith.y b/src/xml/expr_arith.y index 88fec63325..302c003690 100644 --- a/src/xml/expr_arith.y +++ b/src/xml/expr_arith.y @@ -104,27 +104,15 @@ stmt: expr { result = static_cast($1);} expr: STRING { float val = 0.0; ostringstream xpath_t; - ostringstream xpath_s; - ostringstream xpath_c; vector results; - xpath_t << "/HOST/TEMPLATE/" << $1; - xpath_s << "/HOST/HOST_SHARE/" << $1; - xpath_c << "/HOST/CLUSTER_TEMPLATE/" << $1; + xpath_t << "/HOST/TEMPLATE/" << $1 + << "|/HOST/HOST_SHARE/" << $1 + << "|/HOST/CLUSTER_TEMPLATE/" << $1; results = (*oxml)[xpath_t.str().c_str()]; - if (results.size() == 0) - { - results = (*oxml)[xpath_s.str().c_str()]; - } - - if (results.size() == 0) - { - results = (*oxml)[xpath_c.str().c_str()]; - } - if (results.size() != 0) { istringstream iss(results[0]); diff --git a/src/xml/expr_bool.y b/src/xml/expr_bool.y index c03ccc6701..09ca612c5c 100644 --- a/src/xml/expr_bool.y +++ b/src/xml/expr_bool.y @@ -198,33 +198,13 @@ int get_xml_attribute(ObjectXML * oxml, const char* attr, int& val) vector results; ostringstream xpath_t; - xpath_t << "/HOST/TEMPLATE/" << attr; + xpath_t << "/HOST/TEMPLATE/" << attr + << "|/HOST/HOST_SHARE/" << attr + << "|/HOST/" << attr + << "|/HOST/CLUSTER_TEMPLATE/" << attr; + results = (*oxml)[xpath_t.str().c_str()]; - if (results.size() == 0) - { - ostringstream xpath_s; - - xpath_s << "/HOST/HOST_SHARE/" << attr; - results = (*oxml)[xpath_s.str().c_str()]; - - if (results.size() == 0) - { - ostringstream xpath_h; - - xpath_h << "/HOST/" << attr; - results = (*oxml)[xpath_h.str().c_str()]; - - if (results.size() == 0) - { - xpath_h.str(""); - - xpath_h << "/HOST/CLUSTER_TEMPLATE/" << attr; - results = (*oxml)[xpath_h.str().c_str()]; - } - } - } - if (results.size() != 0) { istringstream iss(results[0]); @@ -251,33 +231,13 @@ int get_xml_attribute(ObjectXML * oxml, const char* attr, float& val) ostringstream xpath_t; vector results; - xpath_t << "/HOST/TEMPLATE/" << attr; + xpath_t << "/HOST/TEMPLATE/" << attr + << "|/HOST/HOST_SHARE/" << attr + << "|/HOST/" << attr + << "|/HOST/CLUSTER_TEMPLATE/" << attr; + results = (*oxml)[xpath_t.str().c_str()]; - if (results.size() == 0) - { - ostringstream xpath_s; - - xpath_s << "/HOST/HOST_SHARE/" << attr; - results = (*oxml)[xpath_s.str().c_str()]; - - if (results.size() == 0) - { - ostringstream xpath_h; - - xpath_h << "/HOST/" << attr; - results = (*oxml)[xpath_h.str().c_str()]; - - if (results.size() == 0) - { - xpath_h.str(""); - - xpath_h << "/HOST/CLUSTER_TEMPLATE/" << attr; - results = (*oxml)[xpath_h.str().c_str()]; - } - } - } - if (results.size() != 0) { istringstream iss(results[0]); @@ -304,33 +264,13 @@ int get_xml_attribute(ObjectXML * oxml, const char* attr, string& val) ostringstream xpath_t; vector results; - xpath_t << "/HOST/TEMPLATE/" << attr; + xpath_t << "/HOST/TEMPLATE/" << attr + << "|/HOST/HOST_SHARE/" << attr + << "|/HOST/" << attr + << "|/HOST/CLUSTER_TEMPLATE/" << attr; + results = (*oxml)[xpath_t.str().c_str()]; - if (results.size() == 0) - { - ostringstream xpath_s; - - xpath_s << "/HOST/HOST_SHARE/" << attr; - results = (*oxml)[xpath_s.str().c_str()]; - - if (results.size() == 0) - { - ostringstream xpath_h; - - xpath_h << "/HOST/" << attr; - results = (*oxml)[xpath_h.str().c_str()]; - - if (results.size() == 0) - { - xpath_h.str(""); - - xpath_h << "/HOST/CLUSTER_TEMPLATE/" << attr; - results = (*oxml)[xpath_h.str().c_str()]; - } - } - } - if (results.size() != 0) { val = results[0];