public void insertElementAt(string strElement, string[,] arrAttributes, string strAttributes, string strText, int iElemIndex, int iElemLevel) { if (iElemIndex < 0) { iElemIndex = (Array.IndexOf(this.elements, null) > 0) ? Array.IndexOf(this.elements, null) - 1 : 0; } if (iElemLevel < 0) { iElemLevel = this.elements[iElemIndex - 1].level; } XMLElement Elem = null; int iAddIndex = iElemIndex; if (iElemIndex > 0 && iElemLevel > 0) { Elem = new XMLElement(strElement, strAttributes, arrAttributes, strText, iElemLevel + 1, this); } else { Elem = new XMLElement(strElement, strAttributes, arrAttributes, strText, 1, this); } this.elements = XMLUtilities.Add(this.elements, iAddIndex, Elem); for (int i = iAddIndex; i < Array.IndexOf(this.elements, null); i++) { this.elements[i].index = i; } }
public int addElementAt(string strElement, string[,] arrAttributes, string strAttributes, string strText, int iElemIndex, int iElemLevel) { if (iElemIndex < 0) { iElemIndex = (Array.IndexOf(this.elements, null) > 0) ? Array.IndexOf(this.elements, null) - 1 : 0; } if (iElemLevel < 0) { iElemLevel = this.elements[iElemIndex - 1].level; } XMLElement Elem; int iAddIndex = iElemIndex; if (iElemIndex > 0) { for (int i = iElemIndex; i < Array.IndexOf(this.elements, null); i++) { Console.WriteLine(this.elements[i].level + " > " + (iElemLevel + 1)); if (this.elements[i].level > iElemLevel + 1) { iAddIndex++; } else if (this.elements[i].level <= this.elements[iElemIndex].level) { break; } } Elem = new XMLBuilder.XMLElement(strElement, strAttributes, arrAttributes, strText, iElemLevel + 1, this); } else { Elem = new XMLBuilder.XMLElement(strElement, strAttributes, arrAttributes, strText, 1, this); } this.elements = XMLUtilities.Add(this.elements, iAddIndex, Elem); for (int i = iAddIndex; i < Array.IndexOf(this.elements, null); i++) { this.elements[i].index = i; } return(iAddIndex); }