2011-05-05 2 views
0

Ruby에서 XPATH로 XML 문서를 파싱하는 것에 대한 질문이 있습니다.XPATH와 Ruby를 사용하는 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> 
... 

원하는 OUPUT :

... 
'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' 
... 

당신이 아이디어를 가지고 있습니까?

여기 http://nokogiri.org/

이 문서에서 예제 :

+0

데이터 세트의 시작과 끝 기준은 무엇입니까? 한 세트의 행 주변에 둘러싸인 요소가 있습니까? – ceving

답변

0

노코 기리이 작업에 매우 표준 도구입니다

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

미안 해요, 난 직장에서, 그래서 난 몰라 문제의 특정 스 니펫을 제공 할 시간이 있지만 문서 및 간단한 예를 통해 알 수 있습니다 .-

0

이 Xpath //set//*[not(descendant::*)]/text()은 일련의 행에있는 텍스트 요소 목록을 제공합니다. "set"을 행의 부모 노드 이름으로 바꿔야합니다.

+0

고맙습니다. 효과가있다. –