Questions tagged «xpath»

XPath的主要目的是解决XML文档的某些部分。它还提供了用于处理字符串,数字和布尔值的基本功能。XPath使用一种紧凑的非XML语法。XPath在XML文档的抽象逻辑结构上运行,而不是在其表面语法上运行。

10
如何匹配包含特定字符串的属性?
当属性包含多个单词时,按属性选择节点时遇到问题。例如: <div class="atag btag" /> 这是我的xpath表达式: //*[@class='atag'] 该表达式适用于 <div class="atag" /> 但不适用于前面的示例。如何选择<div>?
442 xpath 

7
使用XPath获取属性
给定这样的XML结构: <?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> 我怎么能得到的值lang(这里lang是eng在书名),第一个元素?
344 xml  xpath 



8
如何在Java中使用XPath读取XML
我想使用Java中的XPath读取XML数据,因此对于我收集的信息,我无法根据需要解析XML。 这是我想做的: 通过其URL从网上获取XML文件,然后使用XPath对其进行解析,我想在其中创建两个方法。一种是输入一个特定的节点属性ID,然后得到所有的子节点,第二种是假设我只想获得一个特定的子节点值 <?xml version="1.0"?> <howto> <topic name="Java"> <url>http://www.rgagnonjavahowto.htm</url> <car>taxi</car> </topic> <topic name="PowerBuilder"> <url>http://www.rgagnon/pbhowto.htm</url> <url>http://www.rgagnon/pbhowtonew.htm</url> </topic> <topic name="Javascript"> <url>http://www.rgagnon/jshowto.htm</url> </topic> <topic name="VBScript"> <url>http://www.rgagnon/vbshowto.htm</url> </topic> </howto> 在上面的示例中,如果我通过@name搜索,我想读取所有元素,并且还要读取一个只希望@name'Javascript'中的url返回一个节点元素的函数。
273 java  xml  parsing  xpath 

7
通过XPath提取属性节点的值
如何通过XPath提取属性节点的值? 一个示例XML文件是: <parents name='Parents'> <Parent id='1' name='Parent_1'> <Children name='Children'> <child name='Child_2' id='2'>child2_Parent_1</child> <child name='Child_4' id='4'>child4_Parent_1</child> <child name='Child_1' id='3'>child1_Parent_1</child> <child name='Child_3' id='1'>child3_Parent_1</child> </Children> </Parent> <Parent id='2' name='Parent_2'> <Children name='Children'> <child name='Child_1' id='8'>child1_parent2</child> <child name='Child_2' id='7'>child2_parent2</child> <child name='Child_4' id='6'>child4_parent2</child> <child name='Child_3' id='5'>child3_parent2</child> </Children> </Parent> </parents> 到目前为止,我有这个XPath字符串: //Parent[@id='1']/Children/child[@name] 它只返回child元素,但我想拥有该name属性的值。 对于我的示例XML文件,这是我想要的输出: Child_2 Child_4 Child_1 …
269 xml  xpath 

6
XPath contains(text(),'some string')与具有多个Text子节点的节点一起使用时不起作用
我对dom4j包含的Xpath有一个小问题... 可以说我的XML是 <Home> <Addr> <Street>ABC</Street> <Number>5</Number> <Comment>BLAH BLAH BLAH <br/><br/>ABC</Comment> </Addr> </Home> 假设我要查找在给定根元素的情况下文本中具有ABC的所有节点... 所以我需要写的xpath是 //*[contains(text(),'ABC')] 但这不是Dom4j返回的结果..这是dom4j问题还是我对xpath的工作方式的理解。因为该查询仅返回Street元素,而不返回Comment元素。 DOM使Comment元素成为具有四个标签的复合元素,其中两个 [Text = 'XYZ'][BR][BR][Text = 'ABC'] 我认为查询仍然应该返回该元素,因为它应该找到该元素并运行包含它的元素,但是它没有…… 以下查询返回该元素,但返回的内容远远超过该元素,它还返回父元素……这是问题所不希望的…… //*[contains(text(),'ABC')] 有谁知道xpath查询会只返回Elements <Street/>和<Comment/>吗?
258 xpath  dom4j 

9
有没有一种方法可以使用Selenium WebDriver中的JavaScript通过XPath获取元素?
我正在寻找类似的东西: getElementByXpath(//html[1]/body[1]/div[1]).innerHTML 我需要使用JS获取元素的innerHTML(要在Selenium WebDriver / Java中使用它,因为WebDriver本身无法找到它),但是如何? 我可以使用ID属性,但并非所有元素都具有ID属性。 [固定] 我正在使用jsoup在Java中完成它。这符合我的需求。


2
XPath:如何根据元素的值选择元素?
我是使用XPath的新手,这可能是一个基本问题。请多多包涵,并帮助我解决问题。我有一个像这样的XML文件: <RootNode> <FirstChild> <Element attribute1="abc" attribute2="xyz">Data</Element> <FirstChild> </RootNode> 我可以通过以下方式验证<Element>标签的存在: // Element [@ attribute1 =“ abc”和@ attribute2 =“ xyz”] 现在,我还想检查一下string的标记值"Data"。为了达到这个目的,我被告知要使用: // Element [@ attribute1 =“ abc”和@ attribute2 =“ xyz”和数据] 当我使用后面的表达式时,出现以下错误: 断言失败消息:没有匹配的节点 //Element[@attribute1="abc" and @attribute2="xyz" and Data] 请给我您的建议,我使用的XPath表达式是否有效。如果不是,什么是有效的XPath表达式?
221 xpath 


1
XPath根据childs子值选择元素
尝试根据其子项之一的值选择一个子项 考虑以下内容但不起作用,感谢您的帮助,谢谢 ./book[/author/name = 'John'] 要么 ./book[/author/name text() = 'John'] 想要所有作者姓名=“约翰”的书 xml文件 <list> <book> <author> <name>John</name> <number>4324234</number> </author> <title>New Book</title> <isbn>dsdaassda</isbn> </book> <book>...</book> <book>...</book> </list>
208 xml  xpath 

6
xpath查找节点是否存在
使用xpath查询,如何找到节点(标签)是否存在? 例如,如果我需要确保网站页面具有正确的基本结构,例如/ html / body和/ html / head / title
201 xslt  xpath  expression 

3
XPath通过属性值选择元素
我有以下XML。 <?xml version="1.0" encoding="UTF-8"?> <Employees> <Employee id="3"> <age>40</age> <name>Tom</name> <gender>Male</gender> <role>Manager</role> </Employee> <Employee id="4"> <age>25</age> <name>Meghna</name> <gender>Female</gender> <role>Manager</role> </Employee> </Employees> 我想选择id =“ 4”的Employee元素。 我正在使用下面的XPath表达式,该表达式不返回任何内容。 //Employee/[@id='4']/text() 我在http://chris.photobooks.com/xml/default.htm上进行了检查,并显示无效的xpath,不确定问题出在哪里。
193 xml  xpath 

16
如何从Shell执行XPath单行?
是否有针对Ubuntu和/或CentOS的软件包,其中包含一个命令行工具,该命令行工具可以像foo //element@attribute filename.xml或那样执行XPath单行代码foo //element@attribute < filename.xml并逐行返回结果? 我正在寻找可以使我公正apt-get install foo或yum install foo然后就可以直接使用的东西,不需要包装或其他适应方法。 以下是一些即将发生的事情的示例: 能吉里 如果我编写此包装器,则可以按上述方式调用包装器: #!/usr/bin/ruby require 'nokogiri' Nokogiri::XML(STDIN).xpath(ARGV[0]).each do |row| puts row end XML :: XPath。可以与此包装一起使用: #!/usr/bin/perl use strict; use warnings; use XML::XPath; my $root = XML::XPath->new(ioref => 'STDIN'); for my $node ($root->find($ARGV[0])->get_nodelist) { print($node->getData, "\n"); } xpath来自XML :: XPath的返回的噪声太大,-- …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.