2014-12-15 5 views
0

나는 부모의 <p> 태그의 텍스트를 얻고 싶습니다. 예를 들어 :Nokogiri를 사용하여 학부모의 텍스트를 가져 오는 방법

test = Nokogiri::HTML("row['test']"]) 
raw_attributes = test.root.css("p a").inject({}) do |accumulator, element| 
    accumulator[element.attr("name")] = (element.parent.text).strip 
    accumulator 
end 

을하지만, 다음과 같은 예를 들어 작동하지 않습니다 :

<p> 
    <a name="TOPIC"></a> 
    <b><font color="#800000" size="4" face="Arial">Exapmles</font></b> 
</p> 

이이 예를 들어 잘 작동

<p> 
    <font> 
    <a name="TOPIC"></a> 
    <b><font color="#800000" size="4" face="Arial">Exapmles</font></b> 
    </font> 
</p> 

I이 사용 노코 기리을 할 수 있습니까? 위의 두 가지 조건 모두에 적합한 솔루션을 원합니다.

답변

2
puts doc.at_xpath("//p[//a[@name='TOPIC']]").inner_text.strip 
#=> "Exapmles" 

디코딩이 말한다 :

  • //p이 -이 조건을
  • //a 일치 - - 그것은 같은 a 요소가 문서
    • […]에 어디서나 p 요소를 찾을 수 하위 항목
      • [@name='TOPIC'] - 값이 TOPICname 속성이 있습니다.
관련 문제