Как проверить родительский узел текущего узла является корневым узлом или нет в xslt? - PullRequest
10 голосов
/ 07 сентября 2011

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

Спасибо и С уважением, П.САРАВАНАН

Ответы [ 2 ]

8 голосов
/ 07 сентября 2011

Вы можете использовать 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>
7 голосов
/ 07 сентября 2011

В XPath 1.0 (XSLT 1.0) :

not(parent::*)

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

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

В XPath 2.0 (XSLT 2.0):

.. is root()
...