如何在 Nokogiri 中使用 xpath 选择 ID



使用以下代码:

doc = Nokogiri::HTML(open("text.html"))
doc.xpath("//span[@id='startsWith_']").remove

我想选择以'startsWith_'开头的每个span#id并将其删除。我尝试搜索,但失败了。

下面是一个示例:

require 'nokogiri'
html = '
<html>
<body>
  <span id="doesnt_start_with">foo</span>
  <span id="startsWith_bar">bar</span>
</body>
</html>'
doc = Nokogiri::HTML(html)
p doc.search('//span[starts-with(@id, "startsWith_")]').to_xml

这就是选择它们的方法。

doc.search('//span[starts-with(@id, "startsWith_")]').each do |n|
  n.remove
end

这就是删除它们的方法。

p doc.to_xml
# >> "<span id="startsWith_bar">bar</span>"
# >> "<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">n<html><body>n  <span id="doesnt_start_with">foo</span>n  n</body></html>n"

"XPath、XQuery 和 XSLT Functions"页面列出了可用的函数。

试试这个 xpath 表达式:

//span[starts-with(@id, 'startsWith_')]

相关内容

  • 没有找到相关文章

最新更新