У меня есть фрагмент ruby кода для замены значения атрибута:
# -*- coding: utf-8 -*-
require "nokogiri"
xml = <<-eos
<a blubb="blah">
<b>irrelevant</b>
<b>also irrelevant</b>
<b blubb="blah">
<c>irrelevant</c>
<c>irrelevant</c>
</b>
<b blubb="foo">
<c>irrelevant</c>
<c>irrelevant</c>
</b>
</a>
eos
doc = Nokogiri::XML(xml) { |config| config.noent }
doc.xpath("//*[@blubb='blah']").each {|node|
puts "Node before:\n#{node.to_s}" ## replace me!
node['blubb'] = "NEW"
puts "Node after:\n#{node.to_s}" ## replace me!
}
Когда я выполняю этот код, я получаю напечатанный элемент node
целиком, но мне нужно только см. начальный тег, чтобы убедиться, что мой сценарий работает правильно. Есть ли способ отобразить только начальные теги node
или хотя бы только сам элемент без его дочерних узлов? Важно то, что сам узел не изменяется при печати (кроме замены в атрибуте), поэтому удаление дочерних узлов не вариант!