سؤال

حسنا, أنا على هذه المهمة.لدي XML بشكل صحيح تحميل من خادم الويب مع رابط لافتا إلى ملقم الملف ، ومع ذلك ، عند اكتشاف الشبكة 'الوصول' أنا مجرد نقطة URL الطلب المحلي XML و أحصل على الخطأ التالي (N. B.الملف هو نسخة مباشرة من واحد على الملقم).

وأنا لا يمكن العثور على وصف التفاصيل ، ولكن أعتقد أنه يقول أن العنوان يشير إلى مكان لا يمكن الوصول إليها.انا تخزين هذه الموارد في موقع خاطئ?أعتقد أنني أريد في HomeDirectory / مكتبة??

إخراج التصحيح

loadMyXml: /var/mobile/Applications/950569B0-6113-48FC-A184-4F1B67A0510F/MyApp.app/SampleHtml.xml
2009-10-14 22:08:17.257 MyApp[288:207] Wah! It didn't work. Error Domain=NSXMLParserErrorDomain Code=5 "Operation could not be completed.   (NSXMLParserErrorDomain error 5.)" 
2009-10-14 22:08:17.270 MyApp[288:207] Operation could not be completed. (NSXMLParserErrorDomain error 5.)
هل كانت مفيدة؟

المحلول 3

وفقا ديف ديلونغ ،

هذا يعني وجود مشاكل تحليل الملف الخاص بك.

أعتقد أنه قد يكون XSLT الإشارة في XML - كما يشير إلى خادم الويب.سوف أستعرض أعود إلى هذا السؤال مع تحسن الإجابة.

كان مسار الملف.قانون بلدي لم تكن حتى قريبة من المكان الصحيح ... و كنت في عداد المفقودين زائدة حرف 's'.رمز الخطأ تعريف يعني "نهاية مبكرة من الملف" ، مما تسبب لي أن اقتطاع ملفي دون أي نجاح.ثم ذهبت إلى الأساسيات يتحرك على ملفات النظام للبحث عن الملف.

أنا تصحيحه باستخدام NSFileManager تكرار إلى ملف ومن ثم التحقق من أنه كان loadable مع contentsAtPath الأسلوب.كنت قادرا على تفريغ مع NSLog().مرة واحدة كنت مقتنعا بأن الملف بشكل جيد و تحميلها في شكل مواد خام ، إننى متأكد أن بلدي NSURL شيدت مع نفس الجملة والأساليب.ثم تحميلها بشكل صحيح.الآن أستطيع تحميل أي ملف شبكة "كامل المواصفات" المحتوى أو المحلية "عينة" المحتوى.

NSDirectoryEnumerator *dirEnumerator = [[NSFileManager defaultManager] enumeratorAtPath: NSHomeDirectory()];
NSString *something;
NSString *f;

while( something = [dirEnumerator nextObject] ) {
    f = [[[NSString alloc] initWithFormat: @"%@/%@", NSHomeDirectory(), something] autorelease];
    if( [f hasSuffix :@"two_cookies.xml"] ){
    NSData *nsData = (NSData*) [[NSFileManager defaultManager] contentsAtPath: f];
        NSLog(@"%@", nsData );
    }
}

الإخراج

2009-10-22 00:47:40.147 MyApp[13843:20b] <?xml version="1.0" encoding="iso-8859-1"?>

P. S.أتمنى كوني صريحة هنا هي مفيدة للآخرين كما أنها تصحيح البيانات المعالجة.

نصائح أخرى

على نفس المنوال الجواب المقبول ، كان لي مشكلة مماثلة لأنني كنت تحميل الملف الخاص بي باستخدام:

[NSURL URLWithString:pathToFile];  // **Wrong**

بدلا من ذلك يجب أن تكون:

[NSURL fileURLWithPath:pathToFile];

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

على كسبلايناتيون من أبل:http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/Reference/Reference.html#//apple_ref/doc/c_ref/NSXMLParserPrematureDocumentEndError

Parser Error Constants

The following error types are defined by NSXMLParser.

typedef enum {
   NSXMLParserPrematureDocumentEndError = 5

و كسبلايناتيون الخطأ هو:

NSXMLParserPrematureDocumentEndError

The document ended unexpectedly.

Available in Mac OS X v10.3 and later.

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