سؤال

لدي وثيقة XML التي يتم تحويلها إلى HTML ولكن أريد أن تكون HTML النتيجة صغيرة قدر الإمكان. لذلك يجب علي إزالة جميع المساحات البيضاء والنهايات الخطية. كيف أقوم بذلك؟

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

المحلول

استخدام

<xsl:strip-space elements="*"/>

فكرة جيدة.

لذلك هو تحديد تفاصيل الإخراج:

<xsl:output
    indent="no"
    method="html"/>

إذا كان ما سبق لا يزال غير جيد بما فيه الكفاية، يمكنك محاولة تغيير معالجة text() العقد (التفكير على طول خطوط مخطط DocBook، حيث أراد أي نص تريد صراحة <para/> العلامات، أو ما شابه ذلك):

<xsl:template match="chapter/text()"/>

يمكنك استخدام فقط match="text()" ولكن قد يكون ذلك عدوانيا للغاية لأنه غامض للغاية - لن يقتل بالضرورة النص الذي تريده (مرة أخرى، في حياتك <para/> العلامات، أو ما شابه ذلك) كما ستعالج هذه العقد النصية ضمنيا بواسطة قوالب XSLT المدمجة.

نصائح أخرى

يجب أن تكون قادرا على استخدام strip-space:

<xsl:strip-space elements="*"/>

xsl:strip-space سوف تتيح لك تجريد مسافة بيضاء من شجرة النتيجة. تأكد أيضا من عدم توليد مساحة بيضاء إضافية في ورقة الأنماط. وهذا هو، تأكد بدلا من شيء مثل

<xsl:value-of select="@key"/>
:
<xsl:value-of select="@value"/>

استعمال xsl:text

<xsl:value-of select="@key"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="@value"/>

يجب أن تذهب مع

<xsl:strip-space elements="*"/>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top