public XMLElement(string tagname, string value, Hashtable parameter, ArrayList elements, XMLElement parent) { this.tagname = tagname; this.value = value; this.parent = parent; if (parameter != null) this.parameter = parameter; else parameter = new Hashtable(); if (elements != null) this.elements = elements; else this.elements = new ArrayList(); }
private void ParseTag(ref String xmlString) { int endpos = xmlString.IndexOf(">"); string tagname = xmlString.Substring(1, endpos - 1); // System.Console.WriteLine(tagname); if (!xmlString.StartsWith("</")) { if (firstelement) { currentelement = new XMLElement(tagname, "", null, null, null); firstelement = false; } else { currentelement.AddChild(new XMLElement(tagname, "", null, null, currentelement)); XMLElement[] elements = currentelement.getChilds(false); currentelement = elements[elements.Length - 1]; } } else { if (currentelement.HasParent) currentelement = currentelement.Parent; } xmlString = xmlString.Substring(endpos + 1); }
//Functie voor het opzoeken van alle tags met de meegegeven tagname. public XMLElement[] getChilds(string tagname, bool verydeep) { //begin met het opzoeken van alle elementen die de meegegeven tagname bevatten. ArrayList xmlElements = new ArrayList(); XMLElement currentelement; for (int i = 0; i < elements.Count; i++) // ga alle tags binnen deze klasse langs { currentelement = (XMLElement)elements[i]; if (currentelement.TagName.StartsWith(tagname)) //als de opgegeven naam overeenkomt dan toevoegen in de lijst om terug te geven. xmlElements.Add(currentelement); if (verydeep) { int nexttagpos = tagname.IndexOf(";"); tagname = tagname.Substring(nexttagpos + 1); currentelement.getChilds(ref xmlElements, tagname); } } //Begin nu met het omzetten van alle arraylist resultaten naar een XMLElement array XMLElement[] resultXmlElements = new XMLElement[xmlElements.Count]; for (int i = 0; i < xmlElements.Count; i++) { resultXmlElements[i] = (XMLElement)xmlElements[i]; } return resultXmlElements; }
//Functie voor het opzoeken van alle tags. public XMLElement[] getChilds(bool verydeep) { //begin met het opzoeken van alle elementen die de meegegeven tagname bevatten. ArrayList xmlElements = new ArrayList(); XMLElement currentelement; for (int i = 0; i < elements.Count; i++) // ga alle tags binnen deze klasse langs { currentelement = (XMLElement)elements[i]; xmlElements.Add(currentelement); if (verydeep) currentelement.getChilds(ref xmlElements); } //Begin nu met het omzetten van alle arraylist resultaten naar een XMLElement array XMLElement[] resultXmlElements = new XMLElement[xmlElements.Count]; for (int i = 0; i < xmlElements.Count; i++) { resultXmlElements[i] = (XMLElement)xmlElements[i]; } return resultXmlElements; }
public void AddChild(XMLElement element) { if (element != null) //afschermen dat je geen lege elementen mag toevoegen { elements.Add(element); } }