是否可以将 xpath 与嵌套循环一起使用?
Is it possible to use xpath with nested loops?
所以我正在尝试用 xpath.Here 解析一些 html 是我的页面的样子
<area id="a_0_0" alt="asd">
<area id="a_0_1" alt="asd">
<area id="a_1_0" alt="asd">
<area id="a_1_1" alt="asd">
所以可以用xpath解析吗?或者我需要用别的东西吗?我对 xpath 有点陌生,这是我尝试过的
doc.DocumentNode.SelectSingleNode("//area[@id='a_0_0']").Attributes["alt"].Value;//this is works
doc.DocumentNode.SelectSingleNode("//area[@id='a_0_[position() >=0 and position() <=1]']").Attributes["alt"].Value
doc.DocumentNode.SelectSingleNode("//area[@id='a_[position() >=0 and position() <=1]']_[position() >=0 and position() <=1]']").Attributes["alt"].Value
您可以将 xml 解析为 XDocument 并从 linq 中受益。
XDocument.Parse(xmlstring)
这是简单的解决方案。
var nodes = doc.DocumentNode.SelectNodes("//area[contains('a_0_0,a_0_1,a_1_0,a_1_1',id)]")
foreach (var node in nodes)
{
// node.Attributes["alt"].Value
}
您也可以使用下面的方法获取所有具有alt属性的区域节点。
var nodes = doc.DocumentNode.SelectNodes("//area[@alt]");
要获取所有以 a_
开头的区域节点,请使用以下命令。
var nodes = doc.DocumentNode.SelectNodes("//area[starts-with(@id,'a_')][@alt]);
所以我正在尝试用 xpath.Here 解析一些 html 是我的页面的样子
<area id="a_0_0" alt="asd">
<area id="a_0_1" alt="asd">
<area id="a_1_0" alt="asd">
<area id="a_1_1" alt="asd">
所以可以用xpath解析吗?或者我需要用别的东西吗?我对 xpath 有点陌生,这是我尝试过的
doc.DocumentNode.SelectSingleNode("//area[@id='a_0_0']").Attributes["alt"].Value;//this is works
doc.DocumentNode.SelectSingleNode("//area[@id='a_0_[position() >=0 and position() <=1]']").Attributes["alt"].Value
doc.DocumentNode.SelectSingleNode("//area[@id='a_[position() >=0 and position() <=1]']_[position() >=0 and position() <=1]']").Attributes["alt"].Value
您可以将 xml 解析为 XDocument 并从 linq 中受益。
XDocument.Parse(xmlstring)
这是简单的解决方案。
var nodes = doc.DocumentNode.SelectNodes("//area[contains('a_0_0,a_0_1,a_1_0,a_1_1',id)]")
foreach (var node in nodes)
{
// node.Attributes["alt"].Value
}
您也可以使用下面的方法获取所有具有alt属性的区域节点。
var nodes = doc.DocumentNode.SelectNodes("//area[@alt]");
要获取所有以 a_
开头的区域节点,请使用以下命令。
var nodes = doc.DocumentNode.SelectNodes("//area[starts-with(@id,'a_')][@alt]);