我有一个XML文档,其中包含许多我想取消注释的注释标记。例如:
<bean id="metadata" class="org.archive.modules.CrawlMetadata" autowire="byName">
<!-- <property name="robotsPolicyName" value="obey"/> -->
<!-- <property name="operator" value=""/> -->
<!-- <property name="operatorFrom" value=""/> -->
<!-- <property name="organization" value=""/> -->
<!-- <property name="audience" value=""/> -->
</bean>
我正在使用Nokogiri。有没有办法删除节点上的注释,或者找到它们,即使作为注释,删除和重新创建?
答案 0 :(得分:4)
看起来您想要将评论替换为其内容,因此取消注释标记?
这很容易做到:
require 'nokogiri'
doc = Nokogiri::XML::Document.parse(<<__XML__)
<bean id="metadata" class="org.archive.modules.CrawlMetadata" autowire="byName">
<!-- <property name="robotsPolicyName" value="obey"/> -->
<!-- <property name="operator" value=""/> -->
<!-- <property name="operatorFrom" value=""/> -->
<!-- <property name="organization" value=""/> -->
<!-- <property name="audience" value=""/> -->
</bean>
__XML__
doc.xpath('//comment()').each { |comment| comment.replace(comment.text) }
puts doc.serialize
<强>输出强>
<?xml version="1.0"?>
<bean id="metadata" class="org.archive.modules.CrawlMetadata" autowire="byName">
<property name="robotsPolicyName" value="obey"/>
<property name="operator" value=""/>
<property name="operatorFrom" value=""/>
<property name="organization" value=""/>
<property name="audience" value=""/>
</bean>