首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析REXML文档,忽略空格

解析REXML文档,忽略空格
EN

Stack Overflow用户
提问于 2011-03-16 23:49:34
回答 1查看 895关注 0票数 1

REXML应该忽略标识或空格吗?

我正在调试simple HTML to Markdown convertor的问题。由于某些原因,它在

代码语言:javascript
复制
<blockquote><p>foo</p></blockquote>

但不是on

代码语言:javascript
复制
<blockquote>
  <p>foo</p>
</blockquote>

原因是,在第一种情况下没有设置type.children.first.value,而在后一种情况下设置了。可以在上面的链接中找到原始代码,但下面是显示该问题的压缩片段:

代码语言:javascript
复制
require 'rexml/document'
include REXML

def parse_string(string)
  doc = Document.new("<root>\n"+string+"\n</root>")
  root = doc.root
  root.elements.each do |element|
    parse_element(element, :root)
  end
end

def parse_element(element, parent)
  @output = ''
  # ...
  @output << opening(element, parent)
  #...
end

def opening(type, parent)
  case type.name.to_sym
    #...
    when :blockquote
       # remove leading newline
      type.children.first.value = ""
      "> "
  end
end

#Parses just fine
puts parse_string("<blockquote>\n<p>foo</p>\n</blockquote>")

# Fails with undefined method `value=' for <p> ... </>:REXML::Element (NoMethodError)
puts parse_string("<blockquote><p>foo</p></blockquote>")

我很确定,这是由于一些参数使得REXML需要空格和标识:否则为什么它解析第一个XML不同于后者?

我可以强制REXML对两者进行相同的解析吗?或者我看到的是一种完全不同的bug?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-28 15:36:41

尝试将选项:ignore_whitespace_nodes=>:all传递给Document.new()。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5327872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档