我有一個XML文件,有大量的評論,使文件超大和泥濘。是否可以使用REXML從註釋中刪除註釋?如何使用REXML + XPATH從XML文檔中刪除所有註釋?
我已經試過這一點,但它不工作(不過,奇怪的是,它不是失敗其一):
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)得到了解決方案。
嗯..悲傷。它永遠遞歸直到它死亡。非常先驅式。 – bitcycle
@bitcycle,它不會永久爲我遞歸,也不會死亡,而是刪除所有註釋節點。 –