如何使用Nokogiri从XML中删除元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Nokogiri从XML中删除元素相关的知识,希望对你有一定的参考价值。
给出此html:
<products>
<product>
<name> product1 </name>
<price> 21 </price>
</product>
<product>
<name> product2 </name>
<price> 0 </price>
</product>
<product>
<name> product3 </name>
<price> 10 </price>
</product>
</products>
我想使用Nokogiri重新创建XML文件,但是我想删除“产品价格= 0”的元素,因此它看起来像:
<products>
<product>
<name> product1 </name>
<price> 21 </price>
</product>
<product>
<name> product3 </name>
<price> 10 </price>
</product>
</products>
我尝试了很多事情,但似乎无济于事。
答案
Nokogiri使用XPath,通过它我可以查询XML文件:就这么简单:
require 'nokogiri'
doc = File.open("file_with_your.xml") |f| Nokogiri::XML(f) // load your file with xml content
c = doc.xpath("//product[price!=0]") //this is the query
puts c // you can print the results
File.open("myfile.xml", "w+") do |f| // and create another file
f << c
end
以上是关于如何使用Nokogiri从XML中删除元素的主要内容,如果未能解决你的问题,请参考以下文章