Использовать :
//div[@class='olh_message']/p/node()
Он выбирает все дочерние узлы (элементы, текстовые узлы, PI и комментарии-узлы) любого элемента p
, который является дочерним для любогоdiv
элемент, чей атрибут class
равен 'olh_message'
.
Проверка с использованием XSLT в качестве хоста XPath :
<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="/">
<xsl:copy-of select="//div[@class='olh_message']/p/node()"/>
</xsl:template>
</xsl:stylesheet>
, когда этопреобразование применяется к следующему XML-документу :
<div class="olh_message">
<p>foobarbaz
<img src="/static/emoticons/support-our-fruits.gif" title=":necta:" />
</p>
</div>
требуемый, правильный результат (показывающий, что именно требуемые узлы были выбраны выражением XPath):
foobarbaz
<img src="/static/emoticons/support-our-fruits.gif" title=":necta:"/>