Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# htmlagilitypack获取元素';按名称创建节点_C#_Html_Html Agility Pack - Fatal编程技术网

C# htmlagilitypack获取元素';按名称创建节点

C# htmlagilitypack获取元素';按名称创建节点,c#,html,html-agility-pack,C#,Html,Html Agility Pack,如何通过名称获取元素的节点。有GetElementById,为什么没有GetElementByName。所讨论的内容是: <select class="box1" name="DAY" tabindex="31"> … </select> … 我希望能够获取此节点。但我不知道怎么做 皮特:请注意这个问题已经回答了。这完全是错误的,你自己去试试吧。node.Name不是属性“Name”的名称,而是我不需要的标记名。您没有访问子体中“select”标记的名为“Nam

如何通过名称获取元素的节点。有GetElementById,为什么没有GetElementByName。所讨论的内容是:

   <select class="box1" name="DAY" tabindex="31"> … </select>
我希望能够获取此节点。但我不知道怎么做


皮特:请注意这个问题已经回答了。这完全是错误的,你自己去试试吧。node.Name不是属性“Name”的名称,而是我不需要的标记名。

您没有访问子体中“select”标记的名为“Name”的节点属性。您正在使用标记的属性名(xe.Name)。正确的方法可以是:

document.DocumentNode.Descendants("select").Where(node => node.GetAttributeValue("name", "").Equals("DAY", StringComparison.InvariantCultureIgnoreCase));

我试了很多次,但都没能成功。var forms=document.DocumentNode.subjects(“表单”);只给我一个xe.Name==“DAY”)的后代;以及0大小集合错误的节点。名称!='name=DAY属性或w,e,注意没有名称的节点,否则会出现NullPointerException。node.Attribute[“name”].Value.Equals(“DAY”)可以替换为node.GetAttributeValue(“name”,“”)=“DAY”。我几分钟前就意识到了这一点。谢谢你指出这一点。另一件需要注意的事情是字符串比较,您不能保证大小写,因此使用ignorecase选项(使用string.Equals)比较更安全。