如何使用xpath按类别/名称选择任何元素?
var nodeByClass = doc.DocumentNode.SelectSingleNode("//[@class='class_name']");
var nodeName = doc.DocumentNode.SelectSingleNode("//[@name='element_name']");
我有一个例外
The expression must be evaluated for a set of nodes.
答案 0 :(得分:0)
您需要在xpath上添加*。 *表示您要选择任何元素。
var nodeByClass = doc.DocumentNode.SelectSingleNode("//*[@class='class_name']");
var nodeName = doc.DocumentNode.SelectSingleNode("//*[@name='element_name']");
答案 1 :(得分:0)
var nodeByClass = doc.DocumentNode.SelectSingleNode("//*[@class='class_name']");
var nodeName = doc.DocumentNode.SelectSingleNode("//*[@name='element_name']");
由于您未指定element标签,因此*将突出显示页面中的所有元素。
答案 2 :(得分:0)
您在//
之后缺少定位步骤,因为不允许使用谓词本身。
var nodeByClass = doc.DocumentNode.SelectSingleNode("//*[@class='class_name']");
var nodeName = doc.DocumentNode.SelectSingleNode("//*[@name='element_name']");
速记:
var nodeByClass = doc.DocumentNode.SelectSingleNode("//self::node()[@class='class_name']");
var nodeName = doc.DocumentNode.SelectSingleNode("//self::node()[@name='element_name']");