我是 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);
}
我只是不知道要使用什么属性,或者如何计算路径。一种方法可能是使用节点名称并在遍历节点时构建一个字符串......但我认为可能有更好的方法。我正在寻找最好的方法来做到这一点。