دالة current() في XSLT
التعريف والاستخدام
يعود الدالة current() بمجموعة عناصر تحتوي فقط على العنصر الحالي. عادةً، العنصر الحالي هو نفسه العنصر المكتوب في سياق.
<xsl:value-of select="current()"/>
يساوي
<xsl:value-of select="."/>
لكن هناك فرقًا واحدًا. دعونا نرى تعبير XPath التالي: "catalog/cd". يعبر هذا التعبير عن جميع أبناء العنصر <catalog>، ثم يختار جميع أبناء العنصر <cd> داخل <catalog>. هذا يعني أن "." يُعطى معنى مختلف في كل خطوة من عملية الحساب.
في السطر التالي:
<xsl:apply-templates select="//cd[@title=current()/@ref]"/>
سيقوم بمعالجة جميع عناصر cd التي تحتوي على نفس القيمة لخصائص title و ref.
وعلى العكس من ذلك:
<xsl:apply-templates select="//cd[@title=./@ref]"/>
هذا سيقوم بمعالجة جميع عناصر cd التي تحتوي على نفس القيمة لخصائص title و ref.
النحو
node-set current()
مثال
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <xsl:for-each select="catalog/cd/artist"> النود الحالية: <xsl:value-of select="current()"/> <br /> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>