我编写了一些代码来解析某些单选按钮的名称。
<div id="First" class="Size-Inputs">
<input rel="8" type="radio" value="13051374" name="idProduct-13051359"/> <span rel="L">L</span>
<input rel="8" type="radio" value="13051373" name="idProduct-13051359"/> <span rel="M">M</span>
<input rel="8" type="radio" value="13051372" name="idProduct-13051359"/> <span rel="S">S</span>
<input rel="8" type="radio" value="13051375"name="idProduct-13051359"/> <span rel="XL">XL</span> </div>
当我尝试解析span rel以获取大小名称(例如L,M,S,XL)时,我遇到的问题是它只出现值L四次。
我正在使用的代码是;
HtmlNodeCollection link = doc.DocumentNode.SelectNodes("//*[@id='First']/input");
if (link != null)
{
foreach (HtmlNode item in link)
{
string name = item.SelectSingleNode("//*[@id='First']/span").InnerText;
Console.WriteLine(name);
}
Console.ReadLine();
}
我只是想知道为什么它只获取一个值并将其打印四次,如何让它为每个变量输入选择span rel。感谢您提供的任何帮助
答案 0 :(得分:1)
您似乎不需要<input>
元素,而是<span>
元素。 <span>
不是<input>
的孩子。因此,假设它不是拼写错误或粘贴错误,您可以直接选择<span>
而不先选择<input>
元素:
HtmlNodeCollection link = doc.DocumentNode.SelectNodes("//*[@id='First']/span");
if (link != null)
{
foreach (HtmlNode item in link)
{
string name = item.InnerText;
Console.WriteLine(name);
}
Console.ReadLine();
}