static public void ReplaceCharacter(CharConverter app, XmlNode parentNode, XmlNode newNode, XmlNode oldNode) { //powers /* DEBUG * XmlNodeList nodelist = newNode.SelectSingleNode("powers").ChildNodes; * for (int powercatindex = 0; powercatindex < nodelist.Count; powercatindex++) * { * XmlNode powercat = nodelist[powercatindex]; * XmlNode powernode = powercat.SelectSingleNode("power"); * XmlNodeList powers = powernode.ChildNodes; * foreach (XmlNode power in powers) * { * String value = app.ValueOf(power, "name"); * XmlNode existingpower = CheckForExistingPower(app, oldNode, value); * * if (existingpower == null) * continue; * * powernode.RemoveChild(power); * powernode.AppendChild(CharConverter.ImportIdNode(newNode.OwnerDocument, powernode, existingpower)); * } * } */ XmlNode nodePowers = newNode.SelectSingleNode("powers"); XmlNodeList nodePowerList = nodePowers.ChildNodes; foreach (XmlNode nodePower in nodePowerList) { String value = app.ValueOf(nodePower, "name"); XmlNode existingpower = CheckForExistingPower(app, oldNode, value); if (existingpower == null) { continue; } nodePowers.RemoveChild(nodePower); nodePowers.AppendChild(CharConverter.ImportIdNode(newNode.OwnerDocument, nodePower, existingpower)); } //notes app.ReplaceElement(oldNode, newNode, "notes"); //appearance app.ReplaceElement(oldNode, newNode, "appearance"); }
static public void ReplaceCharacter(CharConverter app, XmlNode parentNode, XmlNode newNode, XmlNode oldNode) { //spellset XmlNodeList nodelist = newNode.SelectSingleNode("spellset").ChildNodes; foreach (XmlNode spellset in nodelist) { if (spellset.SelectSingleNode("levels") == null) { continue; } XmlNodeList levels = spellset.SelectSingleNode("levels").ChildNodes; for (int levelindex = 0; levelindex < levels.Count; levelindex++) { XmlNode level = levels[levelindex]; XmlNode spells = level.SelectSingleNode("spells"); XmlNodeList spellslist = spells.ChildNodes; for (int i = spellslist.Count - 1; i >= 0; i--) { XmlNode spell = spellslist[i]; String value = app.ValueOf(spell, "name"); XmlNode existingspell = CheckForExistingSpell(app, oldNode, value, levelindex); if (existingspell == null) { continue; } spells.RemoveChild(spell); spells.AppendChild(CharConverter.ImportIdNode(newNode.OwnerDocument, spells, existingspell)); } } } //notes app.ReplaceElement(oldNode, newNode, "notes"); //appearance app.ReplaceElement(oldNode, newNode, "appearance"); }