Tag: xpath

HtmlAgilityPack SelectNodes表达式忽略具有特定属性的元素

我试图选择除脚本节点以外的节点和一个名为’relativeNav’的类的ul。 有人可以指引我走正确的道路吗? 我已经搜索了一个星期,我无法在任何地方找到它。 目前我有这个,但它显然也选择了// ul [@ class =’relativeNav’]。 反正是否有一个NOT表达式,以便SelectNode会忽略那个? foreach (HtmlNode node in doc.DocumentNode.SelectNodes(“//body//*[not(self::script)]/text()”)) { Console.WriteLine(“Node: ” + node); singleString += node.InnerText.Trim() + “\n”; }

使用XPath /应用XSL转换遍历任意C#对象图

我一直在寻找一个允许我将任意C#对象传递给XSL转换的组件。 这样做的天真方法是使用XmlSerializer序列化对象图; 但是,如果你有一个大的对象图,就性能而言,这可能会导致问题。 诸如循环引用,延迟加载,代理等问题可能会使这里的水域更加混乱。 更好的方法是使用某种实现IXPathNavigable和XPathNavigator的Adapter类。 我遇到的一个这样的例子是来自Byte-Force的ObjectXPathNavigator – 但是,它的大部分关键文档都是俄语的,我的初步测试似乎表明它有一些怪癖和特质。 有没有人知道(a)关于这个特定英语的任何资源(概述,教程,博客文章等)或(b)提供相同或类似function的任何其他替代方案?

LINQ to XML:应用XPath

有人能告诉我为什么这个程序不会枚举任何项目? 它与RDF名称空间有关吗? using System; using System.Xml.Linq; using System.Xml.XPath; class Program { static void Main(string[] args) { var doc = XDocument.Load(“http://seattle.craigslist.org/sof/index.rss”); foreach (var item in doc.XPathSelectElements(“//item”)) { Console.WriteLine(item.Element(“link”).Value); } Console.Read(); } }

在.NET 2中搜索具有特定属性值的节点的XML文件

我找到了使用LINQ搜索XML节点的答案,但我仅限于使用.NET 2的C#。 我想打开一个XML文件(~50Kb,所有简单文本)并搜索属性name具有特定值的所有节点。 看起来像XmlDocument.SelectNodes()可能是我正在寻找的,但我不知道XPath。 这是正确的方法,如果是这样,代码会是什么样的?

解析XPath表达式

我正在尝试为XPath创建一个’AET’(抽象表达式树)(因为我正在编写一个WYSIWYG XSL编辑器)。 在过去的三到四个小时里,我一直用XPath BNF撞墙。 我想到了另一个解决方案。 我以为我可以编写一个实现IXPathNavigable的类,它在调用CreateNavigator时返回我自己的XPathNavigator。 这个XPathNavigator总是会在任何方法调用上成功,并会跟踪这些调用 – 例如我们移动到客户节点,然后移动到客户节点。 然后我可以使用这些信息(希望)来创建’AET’(因此我们现在可以在对象模型中拥有客户/客户)。 唯一的问题是:我如何通过XPathExpression运行IXPathNavigable? 我知道这太懒了。 但是有没有其他人经历过努力并编写了一个XPath表达式解析器? 我还没有POC我可能的解决方案,因为我无法测试它(因为我不能对IXPathNavigable运行XPathExpression),所以我甚至不知道我的解决方案是否会工作。

按Xpath查找包含文本的元素

如果我搜索单个字符串,这可以正常工作: var element = Driver.FindElement(By.XPath(“//a[contains(text(), ‘About us’)]”)); 但是我可以在下面的例子中有一个或类似的声明吗? var element = Driver.FindElement(By.XPath(“//a[contains(text(), ‘About us’ or ‘about us’)]”));

XPath和XPathSelectElement

我有以下xml 我已经尝试了所有内容来读取db2(=“Name2”)的名称以及XPath查询的所有可能组合,但从未得到预期的结果。 我的代码到目前为止: var query = “root/databases/db2.. “; // here I’ve tried everything var doc = XDocument.Load(“myconfig.xml”); var dbName = doc.XPathSelectElement(query); 获取“Name2”(属性值)的正确查询是什么? 谢谢你的帮助。

用于选择下一个兄弟的Xpath

我有这样的HTML片段: 名称 值 NAME2 值2 我想找到结构不正确的所有地方,这意味着在dt标签之后没有dd标签。 我试过这个: // DT /以下同胞:: DT 但这不起作用。 有什么建议?

.NET中的XPath SelectNodes

如果我将上述XML加载到XmlDocument并使用XPath查询在C上执行SelectSingleNode // C XmlNode oNode = oDocument.SelectSingleNode(“E”); XmlNodeList oNodeList = oNode.SelectNodes(“// C”); 为什么它会从Under B返回节点,而我预期会发生它只会从E下返回节点 合理? 编辑:我将如何使它只从该节点返回?

无法获取XmlDocument.SelectNodes来检索我的任何节点?

我正在尝试解析XML文档。 有问题的文档是AppxManifest文件。 示例文档如下所示: jhjj bhhjb Assets\StoreLogo.png 6.2.1 6.2.1 Text 我尝试像这样解析它: var xml=new XmlDocument(); xml.Load(myfile); var mgr=new XmlNamespaceManager(xml.NameTable); mgr.AddNamespace(“”, “http://schemas.microsoft.com/appx/2010/manifest”); var nodes=xml.SelectNodes(“Applications”); 但是,执行此操作后, nodes将永远不会包含任何内容。 虽然加载了xml文档。 使用SelectNodes(“//*”)按预期返回每个节点。 我的问题在这里是什么? 我也尝试过很多关于XPath查询的变体,例如 /Package/Applications/Application Applications/Application Applications/* 但是,似乎没有任何东西可以检索单个节点。 理想情况下,我希望节点包含所有Application节点