سؤال

كيف يمكنني الحصول على اسم الملف باستخدام XSL 1.0؟

حاولت

<xsl:value-of select="base-uri()" />

لكن حصلت على "خطأ فادح! لا يمكن العثور على وظيفة: قاعدة URI"

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

المحلول

لا يوجد مثل وظيفة XPath، أو امتداد XSLT إلى وظيفة XPath للقيام بذلك في XSLT V1 / XPath V1.

من الممكن تماما أنه لا يوجد ملف، وحتى إذا لم يكن هناك سبب لعنوان XSLT أن يكون لديك اسم الملف (فكر في تحميل محتوى الملفات في مخزن مؤقت، فقم بتحليل المخزن المؤقت في DOM ثم اجتياز DOM إلى XSLT المعالج).

ستحتاج إلى اجتياز اسم الملف في المعالج لتكون متاحة كمعلمة في التحويل.

نصائح أخرى

base-uri() هو وظيفة XPath 2.0 القياسية, ، لذلك عند تشغيل XSLT 1.0 ستكون هذه الوظيفة غير متوفرة.

في XSLT 1.0 اسم الملف (من ماذا؟) قد يتم تمريره كمعلمة للتحول.

القيام مذكرة أنه ليس من الممكن دائما إنتاج اسم ملف لأحد أساليب أو وثيقة XML - قد يكون كلاهما مقيمين في الذاكرة دون ملف مرتبط.

ليس من الواضح من المشكلة التي يجب أن يتم إنتاج اسم الملف.

فيما يلي كيفية العثور على أسماء الملفات في XPath 2.0 / XSLT 2.0:

اسم الملف المستند الحالي:

 base-uri()

اسم ملف وحدة StyleSheet الحالية:

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