هل يجب تجاهل المسافة البيضاء المتتالية في ملف XML بواسطة قارئ XML؟

StackOverflow https://stackoverflow.com/questions/449532

  •  19-08-2019
  •  | 
  •  

سؤال

في عملي ، لدينا فصول XML الخاصة بنا والتي تبني DOM ، لكنني لست متأكدًا من كيفية معالجة مساحة البيضاء المتتالية؟

على سبيل المثال

<some-text>
Hello     World
</some-text>

عندما تتم قراءة هذا في DOM ، هل يجب أن تتضمن عقدة النص مسافة بيضاء متتالية بين Hello and World أو مجرد تقليلها إلى مساحة واحدة؟

أو يجب كتابة مصدر XML مثل هذا:

<some-text>
Hello &nbsp;&nbsp;&nbsp;&nbsp;World
</some-text>

أو إن لم يكن ربما؟

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

المحلول

&nbsp; هو كيان HTML ولا علاقة له بـ XML نفسه.

للإجابة على سؤالك رغم ذلك ، سأتعامل مع ذلك على أنه مهم. حتى HTML DOM تعامل مساحات متتالية على أنها ذات أهمية كبيرة ، إنها فقط تجعل مساحة واحدة بصريًا. كيف يظهر في DOM وكيف يظهر على شاشتك هما شيئان مختلفان تمامًا.

نصائح أخرى

من المثير للقلق بعض الشيء أن نسمع أن الأشخاص هناك يقومون بتنفيذ معالجات XML دون حتى النظر إلى مواصفات XML.

من XML 1.0 مواصفات ، القسم 2.10 معالجة المساحات البيضاء " (التأكيد لي):

عند تحرير مستندات XML ، غالبًا ما يكون من المناسب استخدام "مساحة بيضاء" (المسافات ، وعلامات التبويب ، والخطوط الفارغة) لتفكيك العلامات لمزيد من القراءة. هذه المساحة البيضاء عادة لا تهدف إلى إدراجها في النسخة التي يتم تسليمها من المستند. من ناحية أخرى ، فإن المساحة البيضاء "المهمة" التي يجب الحفاظ عليها في الإصدار الذي تم تسليمه أمر شائع ، على سبيل المثال في الشعر والرمز المصدري.

يجب على معالج XML دائمًا تمرير جميع الأحرف في مستند لا يتم تمييزه إلى التطبيق. يجب على معالج XML التحقق من صحة التطبيق أيضًا التطبيق الذي يشكل هذه الأحرف مساحة بيضاء تظهر في محتوى العناصر.

سمة خاصة تسمى XML: قد يتم إرفاق المساحة بعنصر للإشارة إلى نية أنه في هذا العنصر ، يجب الحفاظ على المساحة البيضاء بواسطة التطبيقات. في المستندات الصالحة ، يجب الإعلان عن هذه السمة ، مثل أي شيء آخر ، إذا تم استخدامها. عند إعلانه ، يجب إعطاءه كنوع مُعود أن تكون قيمه واحدة أو كليهما "افتراضي" و "الحفاظ". فمثلا: ...

تحرير: تعتبر المسافة البيضاء داخل العلامات مهمة (أفكاري الأولية حول هذا مثل HTML كانت خاطئة ؛ Google أولاً ، أجب على الأسئلة لاحقًا!) انظر هذا التفسير

المنظمة البحرية الدولية يبدو من الطبيعي للغاية معالجة المساحات البيضاء على أنها مهمة في هذه الحالة. أتوقع أن تكون قيمة DOM Node مساوية لما استخدمته في الترميز.

إذا كان لديك "فصول XML الخاصة بنا" ، وكل من كتبهم لا يعرف بالفعل الإجابة على هذا السؤال ، فمن المحتمل أن يكون لديك العديد من المشكلات التي لم تكتشفها بعد.

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