Nokogiri и Xpath: найти весь текст между двумя тегами

Я не уверен, является ли это вопросом синтаксиса или различий в версиях, но я не могу понять это. Я хочу взять данные, которые находятся внутри (не закрытие)td отh2 тег кh3 тег. Вот как будет выглядеть HTML.

<td valign="top" width="350">
    <br><h2>NameIWant</h2><br>
    <br>Town<br>

    PhoneNumber<br>
    <a href="mailto:[email protected]" class="links">[email protected]</a>
    <br>
    <a href="http://websiteIwant.com" class="links">websiteIwant.com</a>
    <br><br>    
    <br><img src="images/spacer.gif"/><br>

    <h3><b>I want to stop before this!</b></h3>
    Lorem Ipsum Yadda Yadda<br>
    <img src="images/spacer.gif" border="0" width="20" height="11" alt=""/><br>
    <td width="25">
        <img src="images/spacer.gif" border="0" width="20" height="8" alt=""/>
        <td valign="top" width="200"><img src="images/spacer.gif"/>
            <br>
            <br>

            <table cellspacing="0" cellpadding="0" border="0"/>205"&gt;<tr><td>
                <a href="http://dontneedthis.com">
                </a></td></tr><br>
            <table border="0" cellpadding="3" cellspacing="0" width="200">
            ...

<td valign> не закрывается до самой нижней части страницы, что, я думаю, может быть причиной моих проблем.

Мой код Ruby выглядит так:

require 'open-uri'
require 'nokogiri'

@doc = Nokogiri::XML(open("http://www.url.com"))

content = @doc.css('//td[valign="top"] [width="350"]')

name = content.xpath('//h2').text
puts name // Returns NameIwant

townNumberLinks = content.search('//following::h2')
puts content // Returns <h2> NameIWant </h2>

Как я понимаю, следующий синтаксис должен «Выбирать все в документе после закрывающего тега текущего узла». Если я попытаюсь использоватьpreceding лайк:

townNumberLinks = content.search('//preceding::h3')
// I get: <h3><b>I want to stop before this!</b></h3>

Надеюсь, я дал понять, что я пытаюсь сделать. Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос