Как проверить родителя текущего node является root node или нет в xslt?

Я хочу проверить родителя текущего node на root node или нет в Xslt. Как я это делаю? Пожалуйста, направляйте меня, чтобы выйти из этой проблемы...

Спасибо и с уважением, P.SARAVANAN

Ответ 1

Вы можете использовать not(ancestor::*).

Пример использования:

  <xsl:template match="node()|@*">
    <xsl:if test="not(ancestor::*)">
      <xsl:message>The root element is "<xsl:value-of select="name()"/>".</xsl:message>
    </xsl:if>
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>

Ответ 2

В XPath 1.0 (XSLT 1.0):

not(parent::*)

Или вы можете использовать:

generate-id(..) = generate-id(/)

В XPath 2.0 (XSLT 2.0):

.. is root()