Zunächst bietet System.XML einige hervorragende Möglichkeiten, mit XML zu arbeiten.
Ich gehe davon aus, dass Sie Ihre XML in ein XMLDocument geladen haben. Dadurch können Sie XPath Selectors verwenden oder einfach durch das DOM laufen.
Etwas Ähnliches würde von was auch immer Gehelement zurück bis an die Spitze Rekursion:
public XmlNode WalkToTopNode (XmlNode CurrentNode)
{
if (CurrentNode.ParentNode == null)
return CurrentNode;
else
return WalkToTopNode(CurrentNode.ParentNode);
}
Mit Rekursion einen Knoten von ID finden etwas wie diese (Hinweis getan werden konnte, schrieb ich dies in der Textbox kann es falsch sein):
public XmlNode GetElementById (string id, XmlNode node)
{
if (node.Attributes["id"] != null && node.Attributes["id"].InnerText == id)
{
return node;
}
else
{
foreach (XmlNode childNode in node.Children)
{
return GetElementById(id, childNode);
}
}
return null;
}
wenn Sie jedoch Rekursion verwenden, wenn es so viele bessere Knoten Traversal Wege gebaut, um System.XML sind, dann vielleicht seine Zeit, um Ihre Strategie zu überdenken.
Dies geschieht am natürlichsten mit XSLT. –