Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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
使用XPATH和Ruby在XML文档中循环_Ruby_Xml_Xpath - Fatal编程技术网

使用XPATH和Ruby在XML文档中循环

使用XPATH和Ruby在XML文档中循环,ruby,xml,xpath,Ruby,Xml,Xpath,我有一个关于在Ruby中用XPATH解析XML文档的问题 我的XML的一小部分: ... <Row> <Cell ss:StyleID="s248"><Data ss:Type="String">Picardie</Data></Cell> <Cell ss:Index="4" ss:StyleID="s28"/> </Row> <Row> <Cell ss:StyleID="s24

我有一个关于在Ruby中用XPATH解析XML文档的问题

我的XML的一小部分:

...
<Row>
  <Cell ss:StyleID="s248"><Data ss:Type="String">Picardie</Data></Cell>
  <Cell ss:Index="4" ss:StyleID="s28"/>
</Row>
<Row>
  <Cell ss:StyleID="s249"><Data ss:Type="String"><Font html:Color="#0000D4"
   xmlns="http://www.w3.org/TR/REC-html40">80 Somme</Font></Data></Cell>
  <Cell ss:Index="3" ss:StyleID="s30"/>
  <Cell ss:StyleID="s28"/>
</Row>
<Row>
  <Cell ss:StyleID="s250"><Data ss:Type="String"><Font html:Color="#DD0806"
   xmlns="http://www.w3.org/TR/REC-html40">André</Font></Data></Cell>
  <Cell ss:Index="3" ss:StyleID="s30"/>
  <Cell ss:StyleID="s28"/>
</Row>
<Row>
  <Cell ss:StyleID="s36"><Data ss:Type="String">23, rue des Lingers </Data></Cell>
  <Cell ss:StyleID="s36"><Data ss:Type="String">80100 ABBEVILLE</Data></Cell>
  <Cell ss:StyleID="s38"><Data ss:Type="String">'</Data></Cell>
</Row>
<Row ss:StyleID="s82">
  <Cell ss:StyleID="s49"><Data ss:Type="String">32, rue des Trois Cailloux</Data></Cell>
  <Cell ss:StyleID="s49"><Data ss:Type="String">80000 AMIENS</Data></Cell>
  <Cell ss:StyleID="s48"><Data ss:Type="String">03.22.22.01.66</Data></Cell>
  <Cell ss:StyleID="s85"/>
</Row>
...

你有什么想法吗?

Nokogiri是这项工作的标准工具:

以下是文档中的一个示例:

# Search for nodes by xpath
doc.xpath('//h3/a[@class="l"]').each do |link|
  puts link.content
end

很抱歉,我正在工作,所以我没有时间给您一个特定于您的问题的代码片段,但我相信您可以从文档和简短的示例中找到它:-)

此Xpath
///set//*[not(后代::*)]/text()
将为您提供一组行中的文本元素列表。必须用行的父节点的名称替换“set”。

数据集的开始和结束标准是什么?在一个集合的行周围是否有任何封闭元素?
# Search for nodes by xpath
doc.xpath('//h3/a[@class="l"]').each do |link|
  puts link.content
end