私はXPathのまったくの初心者です...任意のHTMLドキュメントが与えられれば、すべてのノードのXPath式のリストを抽出できることを望んでいました。例えば:
html
html/head
html/head/title
html/body
html/body/div
html/body/div/p
...
これは私が欲しいものを説明するためのSSCCEです:
static void Main(string[] args)
{
String html = @"
<html>
<head>
<title>Test</title>
</head>
<body>
<div>
<p>Test2</p>
</div>
</body>
</html>
";
XmlDocument doc = new XmlDocument();
doc.LoadXml(html);
foreach (XmlNode node in doc.ChildNodes)
ExamineNode(node);
}
static void ExamineNode(XmlNode node)
{
Console.WriteLine(/* WHAT TO PUT HERE */); // I want to show the path to this node
foreach (XmlNode childNode in node.ChildNodes)
ExamineNode(childNode);
}
使用する属性や、パスの計算方法がわかりません。1つの方法は、ノード名を使用してノードをトラバースしながら文字列を作成することです...しかし、もっと良い方法があるのではないかと思いました。私はこれを行うための最良の方法を探しています。