سؤال

أقوم بتخصيص جهاز بحث Google ، والذي يستخدم XSLT لتقديم النتائج للمستخدم. يدعو تصميمنا إلى واحدة من عدة صور ليتم تضمينها بشكل عشوائي على صفحة النتائج. هل هناك طريقة لاستخدام العشوائية في XSLT؟ (العشوائية الزائفة على ما يرام لهذا التطبيق.)

سيكون استدعاء القوالب العشوائية على ما يرام ، كما هو مجرد القدرة على إنشاء رقم عشوائي وفرع بناءً على ذلك.

هل كانت مفيدة؟

المحلول

اعتمادًا على النظام الأساسي الخاص بك ، يسمح XSL بحقن رمز المستخدم مثل C#. لا أوصي بهذا. من الأفضل ، أن أقبل XSL معلمة وأي شيء يولد حمولة XML أو XSLT ويمكن أيضًا إنشاء الرقم العشوائي ، مع تعيين المعلمة. لقد فعلت ذلك بالضبط باستخدام هذا النهج باستثناء البيانات جاءت من Bing ، وليس G.

نصائح أخرى

يمكنك إنشاء تسلسلات XSLT النقية للأرقام العشوائية وأيضًا التباديل العشوائي للأرقام في [1 .. N].

فقط استخدم مكتبة FXSL (مكتوب في XSLT النقي) لهذا الغرض.

تشرح هذه المقالة القوالب التي يجب استخدامها ولها أمثلة كاملة:

"إلقاء الزهر مع FXSL: وظائف توليد الأرقام العشوائية في XSLT".

إذا كنت تستخدم محرك XSLT المستند إلى Java ، فسيسمح لك ذلك بإجراء مكالمات إلى أي طريقة ثابتة داخل مكتبات Java ، مثل java.lang.math.random (). هنا بناء الجملة ...

<?xml version='1.0'?>
<xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:math="java.lang.Math"
    version='1.1'>

    <xsl:template match="/">
        <xsl:variable name="myRandom" select="math:random()"/>
        <xsl:value-of select="$myRandom"/>
    </xsl:template>

</xsl:stylesheet>

إذا لم تكن منافئًا إلى تضمين المكتبات ، فهناك العديد من المتاحة مثل عشوائي: تسلسل عشوائي من exslt

إذا كنت تفعل هذا لأي شيء Microsoft ، فقد وجدت أن استخدام وظيفة XSLT DDWRT: أعمال عشوائية.

يمكنني استخدام ما يلي لإنشاء الرقم العشوائي

<xsl:variable name="RowCount" select="count($Rows)" />
<xsl:variable name="RandomNumber" select="ddwrt:Random(1, $RowCount)" />

وما يلي لتقديم

<xsl:for-each select="$Rows[position() = $RandomNumber]">
<xsl:value-of select="@Title" /></xsl:for-each>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top