Chcę sprawdzić rodzica bieżącego węzła jest węzłem głównym lub nie w Xslt. Jak to zrobić? proszę kierować mi wyjść z tego problemu ...jak sprawdzić rodzica bieżącego węzła jest węzłem głównym, czy nie w xslt?
Dzięki & Pozdrawiam, P.SARAVANAN
Chcę sprawdzić rodzica bieżącego węzła jest węzłem głównym lub nie w Xslt. Jak to zrobić? proszę kierować mi wyjść z tego problemu ...jak sprawdzić rodzica bieżącego węzła jest węzłem głównym, czy nie w xslt?
Dzięki & Pozdrawiam, P.SARAVANAN
Można użyć not(ancestor::*)
.
przykład użycia:
<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>
Dwie kwalifikacje: (a) jest to w porządku dla XSLT 1.0, gdzie węzeł główny jest zawsze węzłem dokumentu; nie jest w porządku dla wersji 2.0, gdzie węzeł główny może być węzłem elementu (lub w rzeczywistości atrybutem lub węzłem tekstowym). (b) Podany kod jest OK, z wyjątkiem wiadomości. Komentarz lub instrukcja przetwarzania, która jest dzieckiem węzła głównego (dokumentu), spełni test, ale wygeneruje fałszywy komunikat. –
Ładne xpath do identyfikacji elementu głównego, +1 –
W Xpath 1.0 (XSLT 1.0):
not(parent::*)
albo można użyć:
generate-id(..) = generate-id(/)
W Xpath 2,0 (XSLT 2,0):
.. is root()
Dobre pytanie, +1. Zobacz moją odpowiedź na * poprawne * rozwiązania, zarówno w XPath 1.0, jak i XPath 2.0. –