2010-07-26 1 views
0

빠른 질문이 있습니다. 나는 현재 노코 기리/루비 스크립트를 작성하고 다음 코드가 있어요 :Nokogiri/Ruby 배열 질문

fullId = doc.xpath("/success/data/annotatorResultBean/annotations/annotationBean/concept/fullId") 
fullId.each do |e| 
      e = e.to_s() 
      g.write(e + "\n") 
    end 

이 다음 텍스트 밖으로 뱉어 :

<fullId>D001792</fullId> 
<fullId>D001792</fullId> 
<fullId>D001792</fullId> 
<fullId>D008715</fullId> 

내가 사이에 단지 숫자 텍스트를 원을 "< fullid> "< fullId>, </fullId> 마크 업없이 저장되었습니다. 내가 뭘 놓치고 있니?

바비

답변

10

난 당신이 오히려 그리고 to_s보다, (아이의 텍스트 값을 반환) 텍스트() 접근을 사용하려는 생각() (당신이 여기에서 보는 바와 같이, 전체 노드를 직렬화한다).

나는 당신이 write를 호출하고있는 g 목적이 무엇인지 모르겠지만, 다음 코드는 당신에게 fullId 노드에서 모든 텍스트를 포함하고있는 배열을 제공한다 : 지적에 대해

doc.xpath(your_xpath).map {|e| e.text} 
+0

일을 가장 정확한 답으로 – Chubas