From: <jh...@us...> - 2011-04-12 06:08:39
|
Revision: 268 http://etch.svn.sourceforge.net/etch/?rev=268&view=rev Author: jheiss Date: 2011-04-12 06:08:33 +0000 (Tue, 12 Apr 2011) Log Message: ----------- Add xmlattrvalue method to XML abstraction layer Modified Paths: -------------- trunk/server/lib/etch.rb trunk/test/unit/test_xml_abstraction.rb Modified: trunk/server/lib/etch.rb =================================================================== --- trunk/server/lib/etch.rb 2011-04-12 01:23:53 UTC (rev 267) +++ trunk/server/lib/etch.rb 2011-04-12 06:08:33 UTC (rev 268) @@ -1414,6 +1414,19 @@ end end + def self.xmlattrvalue(elem, attrname) + case Etch.xmllib + when :libxml + elem.attributes[attrname] + when :nokogiri + elem[attrname] + when :rexml + elem.attributes[attrname] + else + raise "Unknown XML library #{Etch.xmllib}" + end + end + def self.xmlattrremove(elem, attribute) case Etch.xmllib when :libxml Modified: trunk/test/unit/test_xml_abstraction.rb =================================================================== --- trunk/test/unit/test_xml_abstraction.rb 2011-04-12 01:23:53 UTC (rev 267) +++ trunk/test/unit/test_xml_abstraction.rb 2011-04-12 06:08:33 UTC (rev 268) @@ -434,6 +434,17 @@ raise "Unknown XML library #{Etch.xmllib}" end end + def test_xmlattrvalue + file = Tempfile.new('etch_xml_abstraction') + file.puts '<root><element attrname="attrvalue"><child/></element><element attrname="othervalue"/><other/></root>' + file.close + doc = Etch.xmlload(file.path) + + first = Etch.xmlarray(doc, '/root/element').first + second = Etch.xmlarray(doc, '/root/element').last + assert_equal('attrvalue', Etch.xmlattrvalue(first, 'attrname')) + assert_equal('othervalue', Etch.xmlattrvalue(second, 'attrname')) + end def test_xmlattrremove file = Tempfile.new('etch_xml_abstraction') file.puts '<root><element attrname="attrvalue"><child/></element><element attrname="othervalue"/><other/></root>' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |