まず、System.XMLはXMLを扱う優れた方法を提供します。
私はあなたのXMLをXMLDocumentにロードしたと仮定しています。そうすれば、XPathセレクタを使用することも、DOMを歩くこともできます。私はテキストボックスでこれを入力した、IDによってノードを見つけるために、再帰を使用し
public XmlNode WalkToTopNode (XmlNode CurrentNode)
{
if (CurrentNode.ParentNode == null)
return CurrentNode;
else
return WalkToTopNode(CurrentNode.ParentNode);
}
は、この(注のようにやや行うことができます。このような
何かが再帰使ってどんな要素からトップに戻るまで歩きます、それは)間違っている可能性があります
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;
}
しかし、るSystem.XMLに内蔵された非常に多くの、より良いノードトラバーサル方法があるとき、あなたはあなたの戦略を再考するために、おそらく、その時間を再帰を使用している場合。
これは、XSLTを使用して最も自然に行われます。 –