moved reading of xml element data to Elements.cpp

This commit is contained in:
Dave Goodwin 2004-06-06 22:02:32 +00:00
parent 6dfb563ff5
commit 3162abcdec

View file

@ -22,8 +22,11 @@
#include "Elements.h"
#include "xml.h"
#include "ctml.h"
#include "ctexceptions.h"
using namespace ctml;
#ifdef USE_DGG_CODE
#include <map>
#endif
@ -508,6 +511,36 @@ namespace Cantera {
return *this;
}
void Elements::addElementsFromXML(const XML_Node& phase) {
// get the declared element names
XML_Node& elements = phase.child("elementArray");
vector<string> enames;
getStringArray(elements, enames);
// // element database defaults to elements.xml
string element_database = "elements.xml";
if (elements.hasAttrib("datasrc"))
element_database = elements["datasrc"];
XML_Node* doc = get_XML_File(element_database);
XML_Node* dbe = &doc->child("ctml/elementData");
int nel = enames.size();
int i;
string enm;
for (i = 0; i < nel; i++) {
XML_Node* e = dbe->findByAttr("name",enames[i]);
if (e) {
addUniqueElement(*e);
}
else {
throw CanteraError("addElementsFromXML","no data for element "
+enames[i]);
}
}
}
/***********************************************************************
* subscribe(), unsubscribe(), and reportSubscriptions():
*