2

我有一个 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。有没有办法删除节点上的评论,或者找到它们,即使作为评论,删除并重新创建?

4

1 回答 1

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>
于 2013-06-23T17:24:11.573 回答