頭にHTML5Shivを含むXHTMLファイルがあります。
<!--[if lt IE 9]>
<script src='../common/html5.js' type='text/javascript'></script>
<![endif]-->
Nokogiriを使用して、そのコメントのパスを調整し、を削除する必要があり../
ます。ただし、.content
コメントノードのを変更すると、>
および<
をエンティティに変換するXML出力が生成されます。
XML = <<ENDXML
<r><!--[if lt IE 9]>
<script src='../common/html5.js' type='text/javascript'></script>
<![endif]--></r>
ENDXML
require 'nokogiri'
doc = Nokogiri.XML(XML)
comment = doc.at_xpath('//comment()')
comment.content = comment.content.sub('../','')
puts comment.to_xml
#=> <!--[if lt IE 9]>
#=> <script src='common/html5.js' type='text/javascript'></script>
#=> <![endif]-->
元のソースは有効なXML/XHTMLです。微調整中にこのコメント内のエンティティを変換しないようにNokogiriを取得するにはどうすればよいですか?