尝试用rexml来解析xml文档的时候出现问题:
undefined local variable or method 'transitive' in document.rb
于是乎查看rexml的document.rb文件,大概在182行附近有一个方法:
def write( output=$stdout, indent=-1, trans=false, ie_hack=false )
if xml_decl.encoding != "UTF-8" && !output.kind_of?(Output)
output = Output.new( output, xml_decl.encoding )
end
formatter = if indent > -1
if transitive
REXML::Formatters::Transitive.new( indent, ie_hack )
else
REXML::Formatters::Pretty.new( indent, ie_hack )
end
else
REXML::Formatters::Default.new( ie_hack )
end
formatter.write( self, output )
end
看到下面有一个if语句与方法后面的形参里面的trans不符合。。。原来是if语句后面的参数写错了,我说的呢,把
if transitive
修改为
if trans
OK,问题解决了,哎,可能ruby以后的版本会修复这个bug吧。。。。。。
呃……又发现了一个问题……
提示:private method `gsub' called for 6:Fixnum
看来gsub这个方法还不能支持数字为属性值的标签转换……打开rexml文件夹下面的text.rb,找到代码,大概在289行
def Text::normalize( input, doctype=nil, entity_filter=nil )
copy = input
# Doing it like this rather than in a loop improves the speed
#copy = copy.gsub( EREFERENCE, '&' )
copy = copy.gsub( "&", "&" )
............省略后面的
修改代码
copy=input
为
ruby = input.to_s
解决!
如果还有错误还得解决……rexml的作者可真粗心呀。。。。
分享到:
相关推荐
标题与描述中的关键词“ruby1.8.6”指向了Ruby编程语言的一个特定版本,即Ruby 1.8.6。这一版本在2007年发布,是Ruby语言发展历史上的一个重要里程碑,它在性能、稳定性和安全性方面相较于之前的版本有了显著提升,...
Ruby1.8.6 One-Click Installer
Ruby 1.8.6不再被官方支持,可能存在已知的安全漏洞和性能问题。因此,除非有特定的需求,一般不建议在新的项目中使用。 总的来说,Ruby 1.8.6是Ruby发展史上的一座里程碑,它的存在见证了Ruby语言的成长。对于学习...
同时,提供的`安装说明.xls`文件应该包含更详细的步骤和可能遇到的问题解决方案,确保您在整个过程中得到充分的指导。 最后,记住在开发过程中保持版本的一致性是非常重要的,因为不同版本的软件之间可能存在兼容性...
Ruby 1.8.6 是一个古老的 Ruby 语言版本,发布于2009年,是许多开发者早期学习和构建应用程序的重要版本。Ruby 是一种面向对象的、动态类型的编程语言,以其简洁、清晰的语法和强大的元编程能力而受到欢迎。在 Ruby ...
Ruby-doc is a project dedicated to creating and collecting documentation on Ruby. You can find collections of articles and other resources at the website. stdlib-doc is a RubyForge project that ...
### Ruby 1.8.6 与 Rails 2.1.0 的安装指南 #### 安装背景 本文档旨在指导用户如何在 Windows 操作系统上安装 Ruby 1.8.6 版本以及 Rails 2.1.0 版本,并确保其正确运行。这些版本虽然已经比较老旧,但在某些特定...
ruby 1.8.6官方chm文档,做为ruby开发者,这是必备文档.
4. **Enterprise Features(企业级特性)**:REE还包含了一些额外的库和工具,如 Passenger(又名Mod_Ruby,一个流行的Ruby on Rails部署解决方案),这些工具和库旨在简化服务器部署和管理,提高生产环境的稳定性。...
Ruby1.8.6 One-Click Installer
Ruby1.8.6 One-Click Installer带SciTE
Ruby 1.8.6是Ruby的一个较旧版本,发布于2011年,尽管它已经被更现代的版本如Ruby 2.x和3.x取代,但在某些特定场景或项目中,仍然有其应用价值。 在描述中提到的"ruby-1.8.6.tar.gz"是一个压缩包,它包含了完整的...
标题中的"ruby-1.8.6-p114.tar.gz"表明这是一个关于Ruby编程语言的老版本源码包。Ruby是一种面向对象的、动态类型的脚本语言,由日本人松本行弘(Yukihiro Matsumoto)在1990年代末期设计并开发。1.8.6是其版本号,...
好用的API chm格式 想要的就下载吧!!!!
访问Ruby官方网站或镜像站点,下载与操作系统相对应的Ruby安装包,确保下载的版本至少为1.8.6。安装过程通常是一个向导流程,用户只需按照提示完成各个步骤即可。安装完成后,可以通过在命令行输入`ruby -v`来检查...
ruby-1.8.6.tar.bz2
ruby api ruby文档 英文 ruby开发必备
在标题中的"Ruby-1.8.6.tar.gz"指的是Ruby的一个特定版本,即1.8.6,该版本被封装在一个tar.gz压缩文件中。这种格式常用于Linux和Unix系统,它结合了tar(归档)和gzip(压缩)工具,便于存储和传输大文件。 描述中...
主要问题是 Watir 的依赖包 `activesupport` 需要 Ruby 版本 >= 1.8.7,而当前系统上安装的是 Ruby 1.8.6。此外,RubyGems 的自动更新功能也出现了问题。 #### 解决方案 1. **安装 Ruby:** - 下载并安装 `ruby...
由于 Ruby 1.8.6 已经过时,使用它可能会遇到兼容性问题,安全漏洞以及缺少开发者工具和库的支持。因此,如果你正在开始一个新的项目,建议升级到更高版本的 Ruby,以利用最新的语言特性和社区支持。同时,对于历史...