Предположим, что узел контекста является родителем div
, а div
является первым div
дочерним узлом контекста (Вы не предоставили полный исходный XML-код !!!), этоВыражение XPath выбирает нужные узлы :
div[1]/node()
Проверка на основе 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="/t">
<xsl:copy-of select="div[1]/node()"/>
</xsl:template>
</xsl:stylesheet>
, когда это преобразование применяется к предоставленномуФрагмент XML (заключенный в один верхний узел, чтобы сделать его правильно сформированным документом XML):
<t>
<table></table>
...
<div>
<font>some
<b>kind</b> of
<i>individual</i> text I need
</font>
</div>
...
<div>other things I don't need</div>
</t>
желаемый, правильный результат получается :
<font>some
<b>kind</b> of
<i>individual</i> text I need
</font>
Объяснение : Вышеуказанное выражение XPath выбирает все дочерние узлы первого div
дочернего узла контекста.Это именно то, что нужно: все дочерние элементы div
элемента, но исключая сам элемент div
.