Tag: xpath

在C#中对XPathNodeIterator的内容进行排序

我有一个DLL(我有很多原因)无法改变。 我使用这个程序集来检索XPathNodeIterator 。 我知道我可以在XPathNavigator上使用XPathExpression对XML进行排序以获取XPathNodeIterator ,问题是我从XPathNodeIterator开始有什么方法可以在之后应用排序?

C#XML文件中的标记路径列表

我想从xml文件中获取所有元素XPath,例如xml文件,就像用Excel打开XML文件一样 …. 我想得到 BookStore/BookStoreInfo/Address BookStore/BookStoreInfo/Tel BookStore/BookStoreInfo/Fax BookStore/Book/@id BookStore/Book/@category BookStore/Book/BookName BookStore/Book/ISBN BookStore/Book/PublishDate 我尝试了几种方法,但不起作用,我该怎么做?

XPath使用C#中的正则表达式匹配()

更新:我写了我做了什么,包括源代码和需要注意的事项, – 在.NET XPath (我的博客)中添加XPath 2.0function和变量 。 有没有办法将正则表达式传递给.NET中XPath语句的matches()? 示例:执行xpath “/windward-studios/Employees/Employee[matches(string(LastName), ‘.*A?B[12]C.*’)]”

使用XPath从XmlDataProvider过滤XML数据

我有一个像这样的xml文件: 我在我的WPF项目中使用此文件:(这是一个资源) 我知道如何根据组织的Title或图层Title制作filter: XmlDataProvider p = (XmlDataProvider)this.FindResource(“myData”); p.XPath = string.Format(“//Organizations/Organization[Layer[contains(@Title,\”{0}\”)]]”, this.layerNameFilter.Text); 但我想根据组织的Title和图层Title过滤这些数据。 有什么建议吗? 如何更改我的XPath字符串,以便我根据它们获得filter? 编辑 我在TreeView上显示这些数据:

C#:XPath选择包含子字符串属性的节点?

我可以使用XPath选择其代码包含UK的国家/地区节点吗? 谢谢。

Html Agility Pack无法使用xpath查找列表选项

这与我之前的问题有关 ,但似乎我有另一个案例,其中Html Agility Pack无法按预期工作。 这是Html(删除了必需品,删除了敏感信息): Frarma Express Maderas Garcia Miaris, SA Ricoh Panama UNO EXPRESS Garrett Blaser Gretsch Oriel Antonio Grau 这是代码: const string xpath = “//*[contains(@id, ‘one-time-payment-form:vendor-select-‘)]/option[contains(text(), ‘UNO EXPRESS’)]”; var driver = new FirefoxDriver(new FirefoxProfile()) { Url = “PATH_TO_FILE_CONTAINING_HTML_SHOWN_ABOVE” }; Thread.Sleep(2000); //Can WebDriver find it? var e = driver.FindElementByXPath(xpath); Console.WriteLine(e!=null ? “WebDriver success” : […]

XmlDocument SelectNodes(Xpath):结果顺序

这是来自MSDN的示例xml Pride And Prejudice The Handmaid’s Tale Emma Sense and Sensibility 当我使用以下代码选择所有书籍节点时,这些节点将具有哪个顺序? XmlDocument doc = new XmlDocument(); doc.Load(“booksort.xml”); var nodeList =doc.SelectNodes(“bookstore/book”); nodelist中项目的顺序是否与xml中的顺序相同? 这个订单有保证吗?

为什么NamespaceManager在XPath中不使用前缀时不使用DefaultNamespace

当我想使用XPath遍历我的XmlDocument时,我遇到了文档中有许多丑陋的命名空间的问题,所以我开始使用NamespaceManager和XPath。 XML看起来像这样 Data 现在,根据我在本文档中看到的, “urn:schemas-microsoft-com:office:spreadsheet”是默认命名空间,因为它位于根元素上。 所以,天真地,我像这样配置了我的NamespaceManager : XmlDocument document = new XmlDocument(); document.Load(reader); XmlNamespaceManager manager = new XmlNamespaceManager(document.NameTable); manager.AddNamespace(String.Empty, “urn:schemas-microsoft-com:office:spreadsheet”); manager.AddNamespace(“o”, “urn:schemas-microsoft-com:office:office”); manager.AddNamespace(“x”, “urn:schemas-microsoft-com:office:excel”); manager.AddNamespace(“ss”, “urn:schemas-microsoft-com:office:spreadsheet”); manager.AddNamespace(“html”, “http://www.w3.org/TR/REC-html40”); 但是,当我尝试访问节点时 foreach (XmlNode row in document.SelectNodes(“/Workbook/Worksheet[1]/Table/Row”, manager)) 我从来没有得到任何结果。 我的印象是,通过使用空前缀设置第一个命名空间,在搜索该工作空间中的节点时,我不需要设置它。 但是,正如在AddNamespace方法中所述 : 如果XPath表达式不包含前缀,则假定名称空间统一资源标识符(URI)是空名称空间。 这是为什么? 而且,更重要的是:如何访问默认命名空间中的节点,如果不使用前缀将它们设置为空命名空间? 如果我在搜索节点时甚至无法访问它,那么在管理器上设置默认命名空间有什么用呢?

如何选择节点名称包含“mystring”的节点

我需要获取XmlNodeList,其中节点名称包含“mystring” XML node1 value node2 value node3 value node 4 value 期望的输出是 node2 value node 4 value 我试过像XmlNodeList mystringElements = xmlDocument.SelectNodes(@”//*[contains(name,’mystring’)]”); 但它返回零节点。 我应该在XPath查询中放置什么来实现这一点。

Umbraco – 按URL选择节点

当我试图通过它的url访问节点时,我遇到了Umbraco的问题。 我一直在尝试形成一个xpath查询来选择url,但我不知道如何做到这一点,并且他们的API中的所有内容都是“动态的”所以我发现无法深入挖掘其他内容方法。 Umbraco编辑器中的“链接到文档”属性显示路径为“ / links / link-regions / link-region-1 / ”。 它在编辑器中的位置是“ / Data / Links / Link Regions / Link Region 1 ”。 我怀疑它看起来像这样,但我不能让它工作: //*[@url=’/links/link-regions/link-region-1/’] 我基本上想知道我要做什么来通过提供这些值中的任何一个而不是其他值来获取节点。 我一直试图这样做几天无济于事,请帮忙!