我有一个带有HTML5 Shiv的 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 在调整期间不转换此评论中的实体?