سؤال

ال .XFDL يحدد امتداد الملف XFDL ملفات المستندات المنسقة.تنتمي هذه إلى معيار تنسيق المستندات والقالب المستند إلى XML.يشبه هذا التنسيق تمامًا تنسيق ملف XML، إلا أنه يحتوي على مستوى من التشفير لاستخدامه في الاتصالات الآمنة.

أعرف كيفية عرض ملفات XFDL باستخدام عارض الملفات الذي وجدته هنا.يمكنني أيضًا تعديل هذه الملفات وحفظها عن طريق إجراء File:Save/Save As.ومع ذلك، أرغب في تعديل هذه الملفات بسرعة.أي اقتراحات؟هل هذا ممكن حتى؟

التحديث رقم 1:لقد قمت الآن بفك تشفير وفك ضغط ملف A .xfdl إلى ملف XML والذي يمكنني بعد ذلك تحريره.الآن، أنا أبحث عن طريقة لإعادة تشفير ملف XML المعدل مرة أخرى إلى base64-gzip (باستخدام Ruby أو سطر الأوامر)

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

المحلول

إذا كان الترميز base64 فهذا هو الحل الذي عثرت عليه على الويب وصلة :

"فك تشفير ملفات XDFL المحفوظة باستخدام 'encoding=base64'.الملفات المحفوظة مع:

application/vnd.xfdl;content-encoding="base64-gzip"

هي ملفات gzip بسيطة مشفرة بـ base64.يمكن استعادتها بسهولة إلى XML عن طريق فك تشفيرها أولاً ثم فك ضغطها.يمكن القيام بذلك على النحو التالي على Ubuntu:

sudo apt-get install uudeview uudeview -i yourform.xfdl gunzip -S "" < UNKNOWN.001 > yourform-unpacked.xfdl 

سيقوم الأمر الأول بتثبيت uudeview، وهي حزمة يمكنها فك تشفير Base64، من بين أشياء أخرى.يمكنك تخطي هذه الخطوة بمجرد تثبيتها.

بافتراض أن النموذج الخاص بك محفوظ باسم "yourform.xfdl"، فإن الأمر uudeview سيقوم بفك تشفير المحتويات كـ "UNKNOWN.001"، نظرًا لأن ملف xfdl لا يحتوي على اسم ملف.الخيار '-i' يجعل uudeview غير تفاعلي، قم بإزالة هذا الخيار لمزيد من التحكم.

يقوم الأمر الأخير بضغط الملف الذي تم فك تشفيره إلى ملف يسمى "yourform-unpacked.xfdl"."

آخر حل ممكن - هنا

ملاحظة جانبية:الكتلة المقتبسة <code> لا تعمل مع السلاسل الطويلة من التعليمات البرمجية

نصائح أخرى

الإجابة الوحيدة التي أفكر بها الآن هي قراءة دليل uudeview.

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

وفي الوقت نفسه يمكنني أن أقدم لك روابط لبعض المستندات التي قد تساعدك:

آسف إذا كان هذا لا يساعدك.

ليس عليك الخروج من روبي للقيام بذلك، يمكنك استخدام وحدة Base64 في روبي لتشفير المستند مثل هذا:

irb(main):005:0> require 'base64'
=> true

irb(main):007:0> Base64.encode64("Hello World")
=> "SGVsbG8gV29ybGQ=\n"

irb(main):008:0> Base64.decode64("SGVsbG8gV29ybGQ=\n")
=> "Hello World"

ويمكنك الاتصال بـ gzip/gunzip باستخدام Kernel#system:

system("gzip foo.something")
system("gunzip foo.something.gz")
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top