ما هو وسيلة جيدة لترميز النص التعسفي في XML بطريقة مقروءة بشرية؟

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

  •  09-12-2019
  •  | 
  •  

سؤال

ما لدي حتى الآن يضع النص في علامات CDATA، والتعامل مع احتمال ظهور نهايات CDATA في النص عن طريق تقسيمه إلى CDATAS المتاخمة المتعددة.

لست متأكدا من ذلك، لكن محلل XML يمكن أن تفشل في الحفاظ على خطوط نيو هناك من علامات CDATA، صحيحة؟هذا يعني الهروب منهم بطريقة أو بأخرى ...

أريد إنشاء ملفات XML هذه باستخدام Perl وتحليلها باستخدام C ++ (باستخدام Expat) و Java و C #.

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

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

المحلول

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

انظر، على سبيل المثال https://stackoverflow.com/a/1140802/181772

نصائح أخرى

يمكنك ترميز المحتوى، إذا كان المحتوى HTML على سبيل المثال: giveacodicetagpre.

vs. giveacodicetagpre.

هم، بقدر ما أستطيع أن أقول أقسام CDATA مخصصة لبيانات الأحرف، ولا تحسب أحرف التحكم.أفترض أن هذا يعني أنه في مسألة خطوط نيو لاينات، اتخذ محللون XML دعوة حول ما إذا كانت شخصية تحكم أم لا (تاريخيا، نعم، ولكن بشكل شريع ... لا.).

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

خيار آخر، أن ينتهك تماما شرط "القابل للقراءة البشرية" هو BEASE-64 ترميز النص، وهذا يتيح لك ترميز معلومات تعسفية في XML.

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