#ruby #xml #rexml
#ruby #xml #rexml
Вопрос:
<product>
<book>
<id>111</id>
<name>xxx</name>
</book>
<pen>
<id>222</id>
<name>yyy</name>
</pen>
<pencil>
<id>333</id>
<name>zzz</name>
</pencil>
Я хочу удалить узел «карандаш» и распечатать оставшийся xml с помощью REXML (Ruby). Кто-нибудь может сказать мне, как это сделать?
Ответ №1:
Используя один из методов удаления http://rubydoc.info/stdlib/rexml /
require "rexml/document"
string = <<EOF
<product>
<book>
<id>111</id>
<name>xxx</name>
</book>
<pen>
<id>222</id>
<name>yyy</name>
</pen>
<pencil>
<id>333</id>
<name>zzz</name>
</pencil>
</product>
EOF
doc = REXML::Document.new(string)
doc.delete_element('//pencil')
puts doc
Существует также хороший учебник, который поможет вам начать: http://www.germane-software.com/software/rexml/docs/tutorial.html
Комментарии:
1. .to_s в конце не требуется; по умолчанию вызывает .to_s для объекта.