Folgende Lösung zu 1.)
// Create XMLDocument with xml file
XmlDocument document = new XmlDocument();
document.Load(@"myXmlFile.xml");
XmlNodeList nlType = document.GetElementsByTagName("type");
return nlType.Count;
Kurzum:
- Dokument laden
- Alle Knoten mit einem bestimmten namen ("type") in die Liste laden und
- Die Anzahl der Elemente in der Sammlung zählen
// Select all nodes 'Type'
XmlNodeList nodeList = document.GetElementsByTagName("type");
foreach (XmlNode n in nodeList)
{
currentCounter = 0;
// Create NodeList with all nodes in Mebers whose text for the MemberType is Method
// In plain text: n.SelectNodes(".//MemberType[.='Method']")
XmlNodeList childNodeList = n.SelectNodes(".//" + "memberType" + "[.='" + "Method" + "']");
// Simply count the arraysize
currentCounter = childNodeList.Count;
// Read attribute Name of the Type with '@'
currentClassName = n.SelectSingleNode("./@name").Value.ToString();
// If currentCounter greater than highestCounter ...
if (currentCounter > highestCounter)
{
// ... set variables to save the classname and counter
highestCounter = currentCounter;
highestClassName = currentClassName;
}
}
Kurzum:
- Auf allen "type"-Elementen iterieren
- Die Elemente "memberTye" deren Text "Method" lautet auswählen
- Auf der Liste die Elemenete zählen
- Namen der übergeordneten Klasse ("type") aus dem Attribut "name" auswählen
- Werte auf neue Höchstzahl vergleichen und ggf. als neues Maximum speichern
Wer Interesse an den Materialien meienr Vorlesung hat, kann gerne mal auf http://www.dcl.hpi.uni-potsdam.de/teaching/xml06/ nachsehen.
Keine Kommentare:
Kommentar veröffentlichen