Обратный поиск Xpath - PullRequest
       30

Обратный поиск Xpath

2 голосов
/ 21 декабря 2011

Есть ли способ при использовании DOM_Document Xpath для поиска в обратном направлении (от конца страницы вверх, а не сверху вниз?) Если это так, как мне это сделать?

Ясделайте лом веб-сайта.(ссылка ниже).http://www.sturmfh.com/obit-display.jhtml?DB=update/obits/dbase&DO=display&ID=1189477693_24578

Я только хочу почистить 3 абзаца.Поэтому я подумал, что было бы проще начать с конца и двигаться вверх.

1 Ответ

2 голосов
/ 22 декабря 2011
* +1000 * Используйте
(//p)[position() > count(//p) - 3]

Выбирает последние (до трех) p элементов в документе XML.

Проверка на основе XSLT :

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="node()|@*">
     <xsl:copy-of select="(//p)[position() > count(//p) - 3]"/>
 </xsl:template>
</xsl:stylesheet>

При применении к документу, указанному в вопросе, это преобразование оценивает выражение XPath и выводит выбранные элементы p.

Результат :

<p>
                If you would like to share your thoughts and memories,<br/> we will deliver your message to the family.<br/>
   <a href="mailto:staff@sturmfh.com?Subject=For%20the%20Family%20of%20Lyle%20Meier">Click</a>
   <a href="mailto:staff@sturmfh.com?Subject=For%20the%20Family%20of%20Lyle%20Meier">
      <img src="/images/email_condol.gif" alt="Logo" border="0" align="middle"/>
   </a>
   <a href="mailto:staff@sturmfh.com?Subject=For%20the%20Family%20of%20Lyle%20Meier">here</a>.
        </p>
<p>To Request a Tribute Folder
                <br/>
   <a href="./obit-foldreq.jhtml?fname=Lyle&amp;lname=Meier">Click</a>
   <a href="./obit-foldreq.jhtml?fname=Lyle&amp;lname=Meier">
      <img src="/images/email_condol.gif" border="0" alt="View" align="top"/>
   </a>
   <a href="./obit-foldreq.jhtml?fname=Lyle&amp;lname=Meier">here</a>
</p>
...