Tag: xpath

从WebBrowserControl中单击的HtmlElement获取XPath

如何从WebBrowserControl中单击的HtmlElement获取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表达式。 谢谢!

如何在Linq-to-XML中按路径查找XML节点

如果我获得特定节点的路径作为字符串,我可以通过使用XElement(或XDocument)的Linq / Method以某种方式轻松找到所述节点。 有很多不同类型的XML对象,如果作为一个额外的奖励,你可以指出我为什么/如何使用不同类型的指南。 编辑:确定在指向XPathSelectElement后我正在尝试它,所以我可以给他正确的答案我不能让它工作但是。 这是我正在尝试的XML SomeName SomeType Alot 和我的代码 string path = “Product/Name”; string name = xml.XPathSelectElement(path).Value; 请注意我的字符串来自其他地方所以我猜它不一定是文字(至少在调试模式下它看起来像上面的那个)。 我也尝试过添加/在前面。 它给了我一个空参考。

XPath小写()函数

我正在使用XPATH从XML文档中选择某些节点。 用户可以插入该位置的值。 它工作正常,但如果使用不同的情况则不起作用。 我已经决定在比较之前将XML值和用户输入更改为小写可能是最好的方法。 我现在有这个作为我的选择器: NodeIter = nav.Select(“/Houses/House/location[contains(../location, ‘” + location_input + “‘)]”); 我已经尝试将lower-case()函数放在不同的位置,但它并不满意。 如何使../location的值作为小写进行比较? 注意:在我的c#代码中使用ToLower()将location_input设置为较低。

使用XPath解析XML文档

可以说我有以下xml(一个简单的例子) one two 我试图通过使用XmlDocument和XPath解析这个(最终我可以创建行列表)。 例如… XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); foreach(XmlNode row in doc.SelectNodes(“//row”)) { string rowName = row.SelectSingleNode(“//name”).InnerText; } 为什么在我的foreach循环中,rowName总是“一个”? 我希望它在第一次迭代时是“一个”,在第二次迭代时是“两个”。 似乎// name获取文档中的第一个实例,而不是我期望的行中的第一个实例。 毕竟,我在“行”节点上调用该方法。 如果这是“它是如何工作的”那么任何人都可以解释我如何改变它以满足我的需求? 谢谢

如何在根节点具有属性时选择xml根节点?

我试图使用XPath查询选择xml文档的根节点的所有子节点。 我的xml文件如下所示: 和 C#代码选择根节点如下: XmlDocument gazetteDocument = new XmlDocument(); gazetteDocument.Load(xmlFilePath); XmlNodeList allNodes = gazetteDocument.SelectNodes(“root”); 此代码工作正常,当根节点没有任何属性时,它选择根节点的所有子节点,它适用于第一个xml文件但不适用于第二个xml文件,因为第二个文件具有xmlns属性。 当根节点具有属性时,有谁知道如何选择根节点的所有子节点? 编辑:我发现了一个XPath查询: /*此查询选择根节点,无论它是否具有任何属性。 选择根节点后,我可以遍历其所有子节点。

在大型xml文件C#中使用XMLreader和xpath

所以我有这个相当大的XML文件,我需要解析,我不想将整个文件加载到内存中。 XML看起来像这样: 我想要做的是遍历每个名​​为node的节点,看看该属性是否与我的search-critera相匹配。 我想用xpath做到这一点。 我在c#中找到了Parse xml:将xmlreader和linq结合到xml中 ,这有助于我隔离有问题的节点。 但我不能在父节点上使用xpath。 我想我必须创建一个xmldocument并加载读者,但我不能按照我想要的方式工作。

使用HtmlAgilityPack获取i帧源

我想在html doc上获取所有iFrame源URL。 我尝试使用带有xpath的HtmlAgilityPack – 但我似乎没有得到一个源列表。 HtmlAgilityPack.HtmlDocument myHtml= new HtmlDocument(); myHtml.LoadHtml(htmlString); foreach (HtmlNode framesrc) in myHtml.DocumentNode.SelectNodes(“//iframe/src”)) { srcCollection.add(framesrc); } 我的xpath错了吗? 谢谢!

使用Linq To XML,获取所有叶子路径的方法?

好的,我有以下XML树 1000 2000 3000 4000 5000 6000 从接收XDocument的方法我想生成一个字典,其中键是路径(实际上是XPath),值来自相应叶子中的值。 root/A/A1/A1A 1000 root/A/A1/A1B 2000 root/A/A1/A1C 3000 root/A/A2/A2A 4000 root/A/A2/A2B 5000 root/B/B1/B1A 6000 在Linq to XML中似乎很简单,但我无法理解它。

使用单引号和双引号编码XPath表达式

XPath(v1)无法编码表达式。 如果您只有单个OR双引号,那么您可以使用诸如的单词 //review[@name=”Bob’s Pizza”] //review[@name='”Pizza” Pam’] 但是如果你有两个例如[弗雷德的“Fancy Pizza”]那么你必须在XPath(C ++)中使用类似Escaping Strings的东西来生成 //review[@name=Concat(“Fred’s “,'”Fancy Pizza”‘)] 任何人都有c#函数来执行此操作? 一些链接很接近 使用MVP.XML库和XPathVariable (一个非常好的解决方案,但对我的需求有点重量级)。 不编码“和”存在的位置 为Concat操作添加的参数多于必要的参数,例如返回//评论[@ name = concat(’Fred’,”’,’s’,’“’,’Fancy Pizza’,”’,”) ] 编辑:一些答案建议逃避’与' 和“with "但是虽然这是有道理的但是它不起作用;使用XML片段尝试它: 和xpath //review[@name=’Bob's Pizza’]

使用html Agility Pack选择属性值

我正在尝试使用html敏捷包和此xpath从html文档中检索特定图像: //div[@id=’topslot’]/a/img/@src 据我所知,它找到了src-attribute,但它返回了img-tag。 这是为什么? 我希望设置InnerHtml / InnerText或其他东西,但两者都是空字符串。 OuterHtml设置为完整的img-tag。 有没有Html Agility Pack的文档?