MPP إلى XML

تحويل ملف MPP إلى XML | تصدير ملف Microsoft Project إلى XML في C#

Microsoft Project هو أحد أكثر برامج إدارة المشاريع شيوعًا وانتشارًا. يتيح لك البرنامج التخطيط للمشاريع وتعيين المهام وإدارة الموارد وسير العمل وإنشاء التقارير وما إلى ذلك. ومع ذلك، لا يوفر MS Project فرصة لفتح أو تحرير ملف بتنسيق MPP للمستخدمين غير المسجلين. وهذا يعني أنه إذا لم يكن لديك ترخيص Microsoft Project تم شراؤه، فلن تتمكن من العمل مع ملفات MPP. لذا عند مشاركة ملفات المشروع، يجب أن يكون لدى المستلم اشتراك MS Project حتى لو كان يريد عرضها فقط. لذلك، يمكن أن يكون تحويل ملف MPP إلى XML حلاً جيدًا.

واجهة برمجة تطبيقات تحويل ملفات Microsoft Project

Aspose.Tasks Cloud هي واجهة برمجة التطبيقات REST الخاصة بنا التي توفر الميزات اللازمة لإنشاء ومعالجة وتحويل ملفات إدارة المشاريع إلى تنسيقات الملفات المدعومة. لمعالجة ملف المشروع، يمكنك تحميل الملف من التخزين السحابي، واستيراد المشروع من تنسيق قاعدة بيانات Primavera (Primavera SQLite.db أو Primavera XML)، واستيراد المشروع من قاعدة البيانات باستخدام سلسلة اتصال محددة أو استيراد المشروع من Project Online. وفقًا لنطاق هذه المقالة، سنستخدم Aspose.Tasks Cloud SDK for .NET المتوفرة للتنزيل على NuGet وGitHub. يرجى تنفيذ الأمر التالي في المحطة الطرفية لتثبيت SDK عبر NuGet:

nuget install Aspose.Tasks-Cloud

لتثبيت SDK مباشرة في مدير حزمة NuGet، يرجى تنفيذ الأمر التالي:

 PM> Install-Package Aspose.Tasks-Cloud

الآن نحتاج إلى إنشاء حساب اشتراك مجاني من خلال زيارة لوحة تحكم Aspose.Cloud. استخدم حساب GitHub أو Google الخاص بك للتسجيل ببساطة أو انقر فوق إنشاء حساب جديد واحصل على بيانات اعتماد العميل الخاصة بك.

تحويل MPP إلى XML في C#

يرجى اتباع الخطوات الموضحة أدناه لإجراء عملية التحويل باستخدام C# .NET

  • أولاً، نحتاج إلى إنشاء كائن TasksApi أثناء تمرير تفاصيل ClientSecret وClientId كوسائط
  • ثانيًا، قم بتحميل محتوى MPP إلى مثيل FileStream
  • الآن قم بإنشاء كائن من فئة PostCreateRequest والذي يتطلب اسم ملف ومثيل Stream يحتوي على محتوى MPP
  • اتصل بطريقة UploadFile(…) من TasksApi لتحميل ملف إلى التخزين السحابي
  • ثم قم بإنشاء كائن من فئة GetTaskDocumentWithFormatRequest
  • حدد قيمة XML من تعداد ProjectFileFormat وقم بتعيين القيمة إلى خاصية Format الخاصة بكائن GetTaskDocumentWithFormatRequest
  • الآن قم باستدعاء طريقة GetTaskDocumentWithFormat(…) لإجراء عملية التحويل
  • نظرًا لأن ناتج الخطوة الأخيرة يتم حفظه في مثيل Stream، فنحن بحاجة إلى استخدام كائن File.Create لحفظ الناتج على محرك الأقراص المحلي. يمكن الاطلاع على التفاصيل في طريقة saveToDisk(..) المخصصة.
// احصل على معرف العميل من https://dashboard.aspose.cloud/
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// إنشاء مثيل TasksApi
TasksApi tasksApi = new TasksApi(clientSecret, clientID);

// اسم ملف MPP المدخل
String inputFile = "Home move plan.mpp";
// اسم ملف XML الناتج
String resultant = "Converted.xml";

try
{

    // قراءة وثيقة المشروع من النظام المحلي إلى مثيل الدفق
    using (var inputStream = new FileStream("C:\\Users\\shahbnay\\Downloads\\"+inputFile, FileMode.Open))
    {
        var uploadFileRequest = new PostCreateRequest("Home move plan.mpp", inputStream);
        // رفع الملف إلى التخزين السحابي
        tasksApi.UploadFile(uploadFileRequest);
    }
   
    // إنشاء طلب تحويل ملف MPP
    var request = new GetTaskDocumentWithFormatRequest();
    
    // تحديد اسم MPP المدخل من التخزين السحابي
    request.Name = inputFile;
    
    // تعيين XML كتنسيق الناتج
    request.Format = Aspose.Tasks.Cloud.Sdk.Model.ProjectFileFormat.Xml;
    
    // إذا كانت المعلمة صحيحة، فسيتم تضمين موارد HTML كملفات منفصلة و
    // تم إرجاعه مع ملف HTML الناتج كحزمة مضغوطة.
    request.ReturnAsZipArchive = false;
    
    // إجراء عملية تحويل المستندات
    Stream response = tasksApi.GetTaskDocumentWithFormat(request);

    if (response != null)
    {
        Console.WriteLine("Successfully converted MPP to XML !");
    }
    
    // طريقة مخصصة لحفظ الملف الناتج على محرك النظام المحلي
    saveToDisk(response, "C:\\Users\\shahbnay\\Downloads\\" + resultant);
}catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

// طريقة لحفظ محتوى الدفق ككائن ملف
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

يمكن العثور على ملفات العينة المستخدمة في المثال أعلاه على Home move plan.mpp وConverted.xml.

تحويل MPP إلى XML باستخدام أوامر cURL

توفر أوامر cURL آلية ممتازة للوصول إلى واجهات برمجة تطبيقات REST من خلال محطة سطر الأوامر. ونظرًا لأن Aspose.Tasks Cloud تم تطويره أيضًا وفقًا لمبادئ REST، فيمكننا أيضًا الوصول إلى واجهة برمجة التطبيقات باستخدام أوامر cURL. ولكن نظرًا لأن واجهات برمجة التطبيقات لا يمكن الوصول إليها إلا من قبل الأشخاص المصرح لهم، وبناءً على تفاصيل معرف العميل والسر الخاص بالعميل، نحتاج إلى إنشاء رمز وصول JWT. يرجى تنفيذ الأمر التالي لإنشاء رمز وصول JWT.

 curl -v "https://api.aspose.cloud/connect/token" \
 -X POST \
 -d "grant_type=client_credentials&client_id=4db2f826-bf9c-42e7-8b2a-8cbca2d15553&client_secret=d757548a9f2558c39c2feebdf85b4c44" \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Accept: application/json"

لتحميل ملف MPP إلى التخزين السحابي، يرجى تنفيذ أمر cURL التالي.

curl -X PUT "https://api.aspose.cloud/v3.0/tasks/storage/file/Home%20move%20plan.mpp" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-H  "Content-Type: multipart/form-data" \
-d {"File":{}}

أخيرًا، قم باستدعاء الأمر التالي لإجراء تحويل MPP إلى تنسيق XML وحفظ الإخراج على محرك الأقراص المحلي (على المسار المحدد).

curl -X GET "https://api.aspose.cloud/v3.0/tasks/Home%20move%20plan.mpp/format?format=xml&returnAsZipArchive=false" \
-H  "accept: multipart/form-data" \
-H  "authorization: Bearer <JWT Token>" \
-o Converted.xml

خاتمة

لقد شاركت المقالة تفاصيل حول كيفية تحويل ملف Microsoft Project إلى XML باستخدام مقتطف التعليمات البرمجية C# .NET. علاوة على ذلك، يرجى ملاحظة أن جميع مجموعات SDK السحابية الخاصة بنا تم تطويرها بموجب ترخيص MIT، لذا يمكن تنزيل مقتطف التعليمات البرمجية الكامل الخاص بها من GitHub. في حالة مواجهة أي مشكلات أثناء استخدام واجهة برمجة التطبيقات أو إذا كان لديك أي استفسارات ذات صلة، فلا تتردد في الاتصال بنا عبر منتدى دعم المنتج المجاني.

مقالات ذات صلة

نوصي أيضًا بزيارة الروابط التالية لمعرفة المزيد عن