У меня есть XML-файл, который содержит массу комментариев, которые делают файл супер большим и грязным. Можно ли удалить комментарии из REXML?Как удалить все комментарии из документа XML с помощью REXML + XPATH?
Я попытался это, но он не работает (хотя, как ни странно, его не подведет ни):
doc.elements.each('//comment()') { |n| doc.delete n }
UPDATE
Это работает:
require 'rexml/document'
doc = REXML::Document.new "<root><foo><!-- comment --></foo></root>"
doc.elements('//*').each { |n| n.comments().each { |c| c.parent = nil } }
formatter = REXML::Formatters::Pretty.new(4)
formatter.compact = true
puts formatter.write(doc.root, '')
# Output:
#
# <root>
# <foo/>
# </root>
Я получил решение от here (ruby-doc.org).
Hm .. печально. Он повторяется навсегда, пока он не умрет. Очень начальный эск. – bitcycle
@bitcycle, он не рекурсирует навсегда для меня и не умирает, вместо этого удаляются все узлы комментариев. –