سؤال

أحاول مطابقة نمط في سلسلة في XSLT/XPath باستخدام وظيفة المطابقات ، على النحو التالي:

<xsl:when test="matches('awesome','awe')">
   ...
</xsl:when>

ومع ذلك ، في كل من Firefox 3.5.9 و IE8 ، لا يظهر. يخبرني IE8 أن "مباريات" ليست وظيفة XSLT أو XPath صالحة. " هل هذا بسبب عدم دعم XSLT 2.0 ، وهل هناك طريقة للتغلب على هذا؟

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

المحلول

يتم دعم التعبيرات العادية فقط في XSLT 2.x/xPath 2.x.

كما في هذا التاريخ ، لا يدعم المتصفح المتاح للجمهور XSLT 2.x/XPath 2.x.

في حالتك الملموسة يمكنك استخدامها:

starts-with('awesome','awe')

وظائف XPath 1.0 أخرى مفيدة هي:

  • contains()

  • substring()

  • substring-before()

  • substring-after()

  • normalize-space()

  • translate()

  • string-length()

نصائح أخرى

بالإضافة إلى التلميح الصحيح بأن المتصفحات لا تدعم XSLT/XPATH 2.0: لاحظ أن Firefox (منذ الإصدار 3.0 على ما أظن) يدعم بعض وظائف exslt ، وخاصة للتعبيرات العادية: https://developer.mozilla.org/en/exslt#regular_expressions لذلك مع Firefox يمكنك النظر في وظائف exslt. ل IE باستخدام MSXML يمكنك دمجها http://exslt.org/regexp/functions/match/regexp.match.msxsl.xsl الذي ينفذ وظيفة مطابقة EXSLT باستخدام عنصر MSXSL: SCRIPT.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top