即使有命名空间管理,SelectSingleNode也会返回空值
我来自这个问题,我的第一个问题得到了解决: 首先是名称空间问题. ,但是现在即使使用Corect命名空间管理我的XPath仍然使我返回无效. 我还检查了: selectsingsinglenode return return null-即使使用名称空间 selectsinglenode始终返回null? xmldocument.selectsinglenode and xmlnamespace问题 selectsingsingsinglenode返回已知的良好xml节点路径xpath 为什么选择selectsinglenode返回null? ,但没有任何帮助.我在这个问题上呆了几个小时.怎么了? 感谢您的任何帮助. 示例XML(编辑:完整XML)
0 2024-04-16
编程技术问答社区
想检索给定的Web元素的X路径
使用Selenium Webdriver,我有页面中所有Web元素的列表.我想编写一个函数,该功能将使我返回传递的元素的xpath字符串. 呼叫功能的呼吁将是: - String XpathOfElement = myWebDriver.getXpath(My_Web_Element) 提示: - 我认为我们可以使用JavaScript(使用Javascriptexecuter).但不熟悉JavaScript. 解决方案 检查此 post ,我将代码写入获得绝对的XPath. public static String getAbsoluteXPath(WebElement element) { return (String) ((JavascriptExecutor) driver).executeScript( "function absoluteXPath(element) {"+ "v
0 2024-04-16
编程技术问答社区
使用C#解析HTMLAgilityPack的问题
我只是想了解HTMLagilityPack和XPath,我正在尝试从NASDAQ网站获取(HTML链接)公司的列表; stocks.aspx 我当前有以下代码; HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument(); // Create a request for the URL. WebRequest request = WebRequest.Create("http://www.nasdaq.com/quotes/nasdaq-100-stocks.aspx"); // Get the response. HttpWebResponse response = (HttpWebResponse)request.GetResponse(); // Get the stream co
0 2024-04-16
编程技术问答社区
HtmlAgilityPack是否有能力在其XPATH选择器中使用正则表达式?
我希望能够创建一个节点集合,其中文本以单词开头然后是数字.例如,给定以下情况: FINDTHIS 1 FINDTHIS SOMETEXT FINDTHIS 2 我希望能够创建一个由两个段落节点组成的集合:findthis 1和findthis 2. 一种可能的方法是创建XPath查询,例如//p[starts-with(., 'FINDTHIS ')],然后使用正则表达式来确定下一个字符是否为数字.如果我想获得返回上述条件的匹配列表,我可以创建一个正则表达式对象并为集合中的每个成员测试文本. 是否有一种方法可以使用htmlagilitypack直接在选择器中使用正则表达式? 解决方案 否,也就是说,您必须按照建议进行并使用XPath表达式进行选择,直到您要使用正则表达式,然后使用 Where扩展方法基于其他解决方案 它不可用,但是您可以轻松添加此功能.在此处进行描述: htmlagilitypack:xpath a
0 2024-04-16
编程技术问答社区
在WebBrowserControl中从点击的HtmlElement中获取XPath
如何从webbrowsercontrol中的单击htmlelemt中获得XPATH? 这就是我检索单击的htmlelement的方式: System.Windows.Forms.HtmlDocument document = this.webBrowser1.Document; document.MouseUp += new HtmlElementEventHandler(this.htmlDocument_Click); private void htmlDocument_Click(object sender, HtmlElementEventArgs e) { HtmlElement element = this.webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition); } 我想在网站上单击特定元素(价格,文章编号,描述等)并获取其XPath表达式. 谢谢! 解决方案 X
0 2024-04-16
编程技术问答社区
WebDriver可以使用xpath查找元素,Html Agility Pack不能。
我一直在HTML敏捷包中遇到问题;我的Xpath查询只有在非常简单的情况下才起作用: //*[@id='some_id'] 或 //input 但是,每当它们变得更加复杂时,HTML敏捷包都无法处理. 这是一个说明问题的示例,我正在使用WebDriver导航到Google,然后返回将传递给HTML Agility Pack的页面源,WebDriver和HTMLagilityPack都尝试找到元素/节点(C#): //The XPath query const string xpath = "//form//tr[1]/td[1]//input[@name='q']"; //Navigate to Google and get page source var driver = new FirefoxDriver(new FirefoxProfile()) { Url = "http://www.google.com" }; Thread.Sleep(2000);
0 2024-04-16
编程技术问答社区
获取当前WebBrowser DOM为HTML
我想在加载我需要的所有内容的WebBrowser上使用HTML能力包(它单击带代码的按钮以加载频道上的每个视频) (它加载了YouTube频道,然后在上述频道上加载所有视频.) 现在,如果我尝试获取所有视频详细信息(我有一个工作代码,将频道的前30个视频输入listView),它仍将仅显示前30个,但是我在WebBrowser页面上加载了所有视频(它显示了所有视频) 我正在使用它来获取当前从webbrowser 中加载的内容 ,但它仍然仅加载前30个视频,而不是从WebBrowser加载的所有视频. 解决方案 如果目标网站大量使用Ajax(就像YouTube一样),则很难(即使不是不可能)确定页面何时完成加载和执行所有动态脚本.但是,您可以通过处理window.onload事件接近,并为非确定性的Ajax调用额外允许额外的一两秒钟.然后通过dynamic调用webBrowser.Document.DomDocument.documentElement.outerHTML以
0 2024-04-16
编程技术问答社区
如何计算包含特定值的XML节点的数量
我正在寻找如何计算包含"否"值以及元素总数的XML文件中的节点. 我的元素计数正常工作,但是我不确定在XML内部查看值的逻辑是否为计数. 要获得我正在使用的总数: XmlDocument readDoc = new XmlDocument(); readDoc.Load(MapPath("Results.xml")); int count = readDoc.SelectNodes("root/User").Count; lblResults.Text = count.ToString(); 下面是我的XML: http://www.example.com Yes http:
0 2024-04-16
编程技术问答社区
在C#中计算XmlNodes的总数
我正在尝试找到一种从XMLNODE递归获取子节点总数的方法. 是要说我要计算所有孩子,盛大的孩子等. 我认为它像 node.SelectNodes().Count ,但我不知道xpath是什么. 解决方案 xpath支持称为 axis spefifier ,所以您代码代码, '寻找是 node.SelectNodes("descendant::*").Count 其他解决方案 您之后的XPath是: descendant::node() (1) 或 descendant::* (2) 上面的第一个Xpath Expresion(1)选择了由当前节点扎根的子树中的任何节点(文本节点,处理 - 构造,注释,元素). (2)选择由当前节点扎根的子树中的任何元素节点. 其他解决方案 using System.Xml.Linq; node.DescendantNodes().Count()
0 2024-04-15
编程技术问答社区
在XPath表达式中声明命名空间
我的应用程序需要根据某些XML数据评估XPATH表达式.表达式由用户在运行时提供.因此,我不能创建XmlNamespaceManager传递给XPathEvaluate,因为我不知道编译时的前缀和名称空间. 是否有可能在xpath表达式中指定名称空间声明? 评论的答案: XML数据具有一个默认的命名空间,但是可以使用任何名称空间嵌套元素.用户知道他使用的数据的名称空间. 用户提供的XPath表达式应针对许多XML文档进行评估,并且每个文档都可以在同一名称空间中具有自己的前缀. 解决方案 我不知道在XPath表达式中定义名称空间前缀的方法. 但是您 can 通过使用local-name()和namespace-uri()函数,将xpath表达式写为命名空间示例的不可知论. 或如果您提前知道XML-Namespaces,则可以在XMLNAMESPACEMANAGER中为它们注册任意前缀,并告诉您的用户在XPath Expression中使用该前缀. X
0 2024-04-15
编程技术问答社区
解析XPath表达式
我正在尝试为XPath创建一个" AET"(抽象表达树)(我正在编写Wysiwyg XSL编辑器).在过去的三到四个小时中,我一直在用XPATH BNF撞到墙上. 我想到了另一种解决方案.我以为我可以写一个实现ixpathnavigable的类,该类可返回我自己的xpathnavigator,当调用CreateNavigator时.此XPathNavigator将始终在任何方法调用上取得成功,并会跟踪这些调用 - 例如我们搬到了客户节点,然后搬到了客户节点.然后,我可以(希望)使用此信息来创建" AET"(因此,我们现在将在对象模型中使用客户/客户). 唯一的问题是:我如何通过xpathexpression运行ixpathnavignavigigress? 我知道这太懒了.但是,还有其他人经历了努力并写了Xpath表情解析器吗?我尚未解决我的可能解决方案,因为我无法测试它(因为我无法对ixpathnavigigigigignable运行x pathexpression)
0 2024-04-15
编程技术问答社区
HtmlAgilityPack的SelectNodes表达式可以忽略具有某种属性的元素
我正在尝试选择节点,除了脚本节点和一个名为" relativenav"的类UL.有人可以将我带到正确的道路吗?我已经搜索了一个星期,但在任何地方都找不到.目前,我有这个,但显然也选择//ul [@class ='relativenav'].无论如何是否可以放置它的表达,以便selectnode会忽略那个? foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//body//*[not(self::script)]/text()")) { Console.WriteLine("Node: " + node); singleString += node.InnerText.Trim() + "\n"; } 解决方案 给定了一个类似于以下结构的HTML文档: HtmlDocument
0 2024-04-15
编程技术问答社区
如何只用XPath和C#.NET获取元素内容
我发现了很多有关如何使用简单XPath表达式和C#获取节点内容的文章,例如: xpath: /bookstore/author/first-name c#: string xpathExpression = "/bookstore/author/first-name"; nodes = navigator.Select(xpathExpression); 我想知道如何获得元素内部的内容,而同一元素在另一个元素和另一个元素内部. 只需查看以下代码: ABCabcABC abcABC abc ABCABCABC.
0 2024-04-15
编程技术问答社区
如何在.Net Core 1.0中使用XPathSelectElement?
在.Net 4.X中,此扩展方法在System.Xml.XPath下. 但是,我想知道如何在.NET Core中找到/使用它?我有一个班级库. 移植工具没有显示有关XPathSelectElement的任何内容. 或.NET核心中的任何替代方法? 非常感谢! 解决方案 您需要添加软件包System.Xml.XPath.XDocument 4.0.1.该软件包提供了向System.Xml.XPath支持System.Xml.XDocument软件包添加System.Xml.XPath的扩展方法. 在软件包管理器控制台中运行以下命令. PM> Install-Package System.Xml.XPath.XDocument -Version 4.0.1 您也可以从具有NuGet 2.12或更高版本的Nuget软件包管理器安装它. 其他解决方案 正如Lex li所建议的那样,我们可以使用此网站搜索包装名称.在我的情况下是:System
0 2024-04-15
编程技术问答社区