public Builder Load(string s)
{
Builder oBuilder = new Builder();
XmlDocument oDoc = new XmlDocument();
oDoc.LoadXml(s);
XmlNode oBuildNode = oDoc.ChildNodes[0];
for (int i = 0; i < oBuildNode.ChildNodes.Count; i++)
{
XmlNode oAction = oBuildNode.ChildNodes[i];
if (oAction.NodeType == XmlNodeType.Comment)
continue;
string sType = oAction.Attributes["type"].Value;
if (sType == "writefile")
AddActionWritefile(oBuilder, oAction);
else if (sType == "writeini")
AddActionWriteIni(oBuilder, oAction);
else if (sType == "runapplication")
AddActionRunApplication(oBuilder, oAction);
else if (sType == "compilevs")
AddActionCompileVS(oBuilder, oAction);
else if (sType == "msbuild")
AddActionMSBuild(oBuilder, oAction);
else if (sType == "copyfile")
AddActionCopyFile(oBuilder, oAction);
else if (sType == "compileinnosetup")
AddActionCompileInnoSetup(oBuilder, oAction);
else if (sType == "subversion")
AddActionSubversion(oBuilder, oAction);
else if (sType == "cleardirectory")
AddActionClearDirectory(oBuilder, oAction);
else
{
throw new Exception("Unknown build type " + sType);
}
}
return oBuilder;
}