阅读Ruby中的XML注释值



我在XML文件开头的注释中添加了带有附加数据的XML。我想阅读这些细节,以便进行一些日志记录。

在Ruby中是否有方法读取XML注释值?

注释的细节如下:

<!--  sessionId="QQQQQQQQ"  --><!-- ProgramId ="EP445522"  -->

使用Nokogiri和XPath提取值:

require 'rubygems'
require 'nokogiri'
doc = Nokogiri::XML('<!--  sessionId="QQQQQQQQ"  --><!-- ProgramId ="EP445522"  -->')
comments = doc.xpath('//comment()')
tags = Hash[*comments.map { |c| c.content.match(/(S+)s*="(w+)"/).captures }.flatten]
puts tags.inspect
# => {"sessionId"=>"QQQQQQQQ", "ProgramId"=>"EP445522"}

你可以这样做:

require 'rexml/document'
require 'rexml/xpath'
File::open('q.xml') do |fd|
  xml = REXML::Document::new(fd)
  REXML::XPath::each(xml.root, '//comment()') do |comment|
    case comment.string
    when /sessionId/
      puts comment.string
    when /ProgramId/
      puts comment.string
    end
  end
end

这实际上是循环遍历所有注释节点,然后查找您感兴趣的字符串,例如sessionId。找到要查找的节点后,可以使用Ruby处理它们以提取所需的信息。

相关内容

  • 没有找到相关文章

最新更新