Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何从表在行中保存的信息创建数组?_Arrays_Ruby_Html Table_Row_Watir - Fatal编程技术网

Arrays 如何从表在行中保存的信息创建数组?

Arrays 如何从表在行中保存的信息创建数组?,arrays,ruby,html-table,row,watir,Arrays,Ruby,Html Table,Row,Watir,我有一个任意行数的表。 在这些行中,我有一些列中的名称,这些行是我要拉入并放入数组的行。 我要从中提取的表如下所示: <table id="team-1200d35e-7528-11e0-9a7d-00b7c9f2a9c6-table" class="grid" style="width: 748px;"> <tbody> <tr class="team-member odd" row="1" team="0" data-id="66c36a98-7

我有一个任意行数的表。
在这些行中,我有一些列中的名称,这些行是我要拉入并放入数组的行。
我要从中提取的表如下所示:

<table id="team-1200d35e-7528-11e0-9a7d-00b7c9f2a9c6-table" class="grid" style="width: 748px;">
   <tbody>
     <tr class="team-member odd" row="1" team="0" data-id="66c36a98-7832-11e0-968b-5e9370556780" name="Barbara Gordon">
     </tr>
     <tr class="team-member even" row="5" team="0" data-id="a9042cb6-7527-11e0-9a7d-00b7c9f2a9c6" name="Bruce Wayne">
     </tr>
     <tr class="team-member even" row="0" team="0" data-id="39daacee-7832-11e0-968b-5e9370556780" name="Dick Grayson">
     </tr>
    </tr>
   </tbody>
  </table>

我要从每一行提取的信息都是name=”“


如何仅提取名称并从中创建一个数组?

假设您的表只是一个字符串,您可以使用,例如(似乎是手动安装)将其解析为XML文档,并提取名称属性,如下所示:

require 'rexml'
names = []
doc = REXML::Document.new(my_table_data)
doc.elements.each('table/tbody/tr') do |el|
  names << el.attributes['name'] if el.attributes['name']
end
names # => ['Barbara Gordon', 'Bruce Wayne', 'Dick Grayson']
需要“rexml”
名称=[]
doc=REXML::Document.new(我的表格数据)
文件元素。每个('table/tbody/tr')都有|
姓名[‘芭芭拉·戈登’、‘布鲁斯·韦恩’、‘迪克·格雷森’]
或类似地使用(可作为gem安装):

需要“nokogiri”
名称=[]
doc=Nokogiri::XML.fragment(我的表格数据)
doc.xpath('table/tbody/tr[@name]')。每个|
姓名[‘芭芭拉·戈登’、‘布鲁斯·韦恩’、‘迪克·格雷森’]

你可以更喜欢用空格分隔名字/姓氏,但这会给那些名字中包含空格的人带来很大的麻烦…

你能告诉我在哪里可以了解更多关于REXML的信息吗。我以前从未用过这个。它是宝石吗?@Curtis Miller:我已经从我的帖子中链接了这个。不过,它看起来更易于安装(可能也更易于使用),因此您可能希望改用这一方法。我在这里为我与Nokogiri之间的问题开了一张罚单,但我在尝试使这两种方法发挥作用时仍然遇到问题。在Ruby中,您不能拥有一个具有无限行数的数组。你可能是指任意数量的行。@sawa:谢谢。肯定用错词了,哈哈。
require 'nokogiri'
names = []
doc = Nokogiri::XML.fragment(my_table_data)
doc.xpath('table/tbody/tr[@name]').each do |el|
  names << el['name']
end
names # => ['Barbara Gordon', 'Bruce Wayne', 'Dick Grayson']