标签: xpath

XPath获取除具有特定名称的子元素之外的所有子元素?

特定元素名称外,如何定位文档中的所有元素?

例如,我想排除terminate元素.它们可以在整个文档中出现.

 <root>
     <terminate attr="1" />
     <other>
         The brown fox jumps over the fence. 
         <terminate>
            <b>stuff</b>
         </terminate>
     </other>
 </root>
Run Code Online (Sandbox Code Playgroud)

我尝试使用not(..)运算符没有成功,因为我使用它错了.

坦率地说谷歌'不'是艰难的!

xml xpath elements

35
推荐指数
2
解决办法
3万
查看次数

Xpath - 仅获取没有其他元素的节点内容

我有一个divelemet:

<div>
   This is some text
   <h1>This is a title</h1>
   <div>Some other content</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我应该用什么只有XPath表达式获得div内容,而他的子元素 h1div

//div[not(h1)&not(div)]

那样的东西?我想不明白

xpath

35
推荐指数
3
解决办法
3万
查看次数

带有层次结构中可选元素的XPath

正如在这个Stack Overflow回答中想象的那样,您需要选择一个特定的表,然后选择它的所有行.由于HTML的允许性,以下所有三个都是合法标记:

<table id="foo"><tr>...</tr></table>
<table id="foo"><tbody><tr>...</tr></tbody></table>
<table id="foo"><tr>...</tr><tbody><tr>...</tr></tbody></table>
Run Code Online (Sandbox Code Playgroud)

您担心嵌套在表中的表,因此不希望使用类似XPath
table[@id="foo"]//tr.

如果您可以将所需的XPath指定为正则表达式,它可能类似于:
table[@id="foo"](/tbody)?/tr

通常,如何指定允许选择器层次结构中的可选元素的XPath表达式?

要清楚,我不是要解决现实问题或选择特定文档的特定元素.我在寻求解决一类问题的技巧.

html xpath

35
推荐指数
3
解决办法
1万
查看次数

Nokogiri/Xpath名称空间查询

我正在尝试dc:title使用xpath 拉出元素.我可以使用以下代码提取元数据.

doc = <<END
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://www.idpf.org/2007/opf" version="2.0">
  <metadata xmlns:dc="URI">
    <dc:title>title text</dc:title>
  </metadata>
</package>
END

doc = Nokogiri::XML(doc)

# Awesome this works!
puts '//xmlns:metadata'
puts doc.xpath('//xmlns:metadata')
# => <metadata xmlns:dc="URI"><dc:title>title text</dc:title></metadata>
Run Code Online (Sandbox Code Playgroud)

如您所见,上面似乎正常工作.但是,我似乎无法从此节点树获取标题信息,以下所有内容都失败了.

puts doc.xpath('//xmlns:metadata/title')
# => nil

puts doc.xpath('//xmlns:metadata/dc:title')
# => ERROR: `evaluate': Undefined namespace prefix

puts doc.xpath('//xmlns:dc:title')
# => ERROR: 'evaluate': Invalid expression: //xmlns:dc:title
Run Code Online (Sandbox Code Playgroud)

有人可以解释如何使用上面的xml doc在xpath中使用命名空间.

ruby xml xpath nokogiri

35
推荐指数
1
解决办法
2万
查看次数

XPath在任何文本节点中查找文本

我试图在文档的任何文本节点中找到某个文本,到目前为止我的语句如下所示:

doc.xpath("//text() = 'Alliance Consulting'") do |node|
  ...
end
Run Code Online (Sandbox Code Playgroud)

这显然不起作用,任何人都可以提出更好的选择吗?

xpath

35
推荐指数
1
解决办法
6万
查看次数

xpath搜索id包含特定文本的div

在我的HTML页面上,我有四十个div,但我只想要一个div

使用敏捷包来搜索并获取所有带有ID的div我使用它

"//div[@id]"
Run Code Online (Sandbox Code Playgroud)

但是我如何搜索带有ID的div,其中id包含文本"test"

<div id="outerdivtest1></div>"
Run Code Online (Sandbox Code Playgroud)

谢谢

xpath html-agility-pack

35
推荐指数
1
解决办法
4万
查看次数

XPath可以只返回具有X子节点的节点吗?

是否可以使用XPath仅选择具有特定子元素的节点?例如,从这个XML我只想要宠物中有'bar'子元素的元素.因此,结果数据集将包含此示例中的lizardpig元素:

<pets>
  <cat>
    <foo>don't care about this</foo>
  </cat>
  <dog>
   <foo>not this one either</foo>
  </dog>
  <lizard>
   <bar>lizard should be returned, because it has a child of bar</bar>
  </lizard>
  <pig>
   <bar>return pig, too</bar>
  </pig>
</pets>
Run Code Online (Sandbox Code Playgroud)

这个Xpath给了我所有的宠物:"/pets/*",但我只想要有一个名字的子节点的宠物'bar'.

xml xslt xpath

34
推荐指数
3
解决办法
3万
查看次数

JavaScript中的跨浏览器XPath实现

我正在寻找一个XPath库来查询FF,IE,Opera和Safari中的XML文档......但是找不到它.你看过了吗?

javascript xml xpath

34
推荐指数
2
解决办法
1万
查看次数

Xpath查询以查找包含某个后代的元素

我正在使用Html Agility Pack在网页上运行xpath查询.我想在表中找到包含某个有趣元素的行.在下面的示例中,我想获取第二行.

<table name="important">
<tr>
  <td>Stuff I'm NOT interested in</td>
</tr>
<tr>
  <td>Stuff I'm interested in</td>
  <td><interestingtag/></td>
  <td>More stuff I'm interested in</td>
</tr>
<tr>
  <td>Stuff I'm NOT interested in</td>
</tr>
<tr>
  <td>Stuff I'm NOT interested in</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

//table[@name='important']/tr[has a descendant named interestingtag]
Run Code Online (Sandbox Code Playgroud)

除了有效的xpath语法.;-)

我想我可以找到有趣的元素本身,然后从返回的节点向上运行父链,但似乎应该有一种方法可以一步完成这一步,而我只是在密集.

xpath

34
推荐指数
3
解决办法
3万
查看次数

找到指定节点后查找兄弟节点

考虑以下非常简化的示例.

<n></n>
<k></k>
<m></m>
<k></k>
Run Code Online (Sandbox Code Playgroud)

如何km节点后搜索第一个兄弟?基本上,找到一些节点,然后继续从该节点进行搜索.

xpath

34
推荐指数
1
解决办法
5万
查看次数

标签 统计

xpath ×10

xml ×4

elements ×1

html ×1

html-agility-pack ×1

javascript ×1

nokogiri ×1

ruby ×1

xslt ×1