Цикл в XML-документе с XPATH и Ruby - PullRequest
0 голосов
/ 05 мая 2011

У меня есть вопрос о разборе XML-документа с XPATH на Ruby.

Небольшая часть моего 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>
...

Желаемый вывод:

...
'Picardie' '80 Somme' 'André' '23, rue des Lingers' '80100 ABBEVILLE'
'Picardie' '80 Somme' 'André' '32, rue des Trois Cailloux' '80000 AMIENS' '03.22.22.01.66'
...

У вас есть идея?

Ответы [ 2 ]

0 голосов
/ 05 мая 2011

Этот Xpath //set//*[not(descendant::*)]/text() даст вам список текстовых элементов в наборе строк.Вы должны заменить «set» именем вашего родительского узла строк.

0 голосов
/ 05 мая 2011

Nokogiri - довольно стандартный инструмент для этой работы:

http://nokogiri.org/

Вот пример из документов:

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

Извините, я вработать, поэтому у меня нет времени, чтобы дать вам фрагмент, специфичный для вашей проблемы, но я уверен, что вы можете понять это из документов и краткого примера: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...