Xcode میں XML فائلوں کو کیسے پیسہ کریں

ایک آسان کام جو بہت سے ایپس کے لئے ریبون ہے XML فائلوں کو پارس کرنے کی صلاحیت ہے. اور، خوش قسمتی سے، Xcode مقصد مقاصد میں ایک XML فائل کو پار کرنے کے لئے یہ نسبتا آسان بنا دیتا ہے.

ایک ایکس ایم ایل فائل آپ کے ایپ کے بارے میں کسی بھی ویب سائٹ کے لئے آر ایس ایس فیڈ میں بنیادی ڈیٹا سے کچھ بھی شامل ہوسکتا ہے. وہ دور دور اپنے اے پی پی کے اندر اندر معلومات کو اپ ڈیٹ کرنے کا ایک بہت بڑا طریقہ بھی بن سکتا ہے، لہذا اس فہرست میں ایک نئے آئٹم کو شامل کرنے کے لئے صرف ایپل سے نیا بائنری جمع کرنے کی ضرورت کو ختم کردیتا ہے.

لہذا ہم Xcode فائلوں کو Xcode میں کیسے عمل کرتے ہیں؟ اس عمل میں استعمال کرنے کے لئے متغیرات کو شروع کرنے کے لئے اقدامات، XML پارسر عمل شروع کرنے، اس پروسیسنگ کو فائل، ایک انفرادی عنصر کا آغاز، عنصر کے اندر حروف (قدر) انفرادی عنصر کا اختتام، اور پسماندہ عمل کے اختتام.

اس مثال میں، ہم ایک مخصوص ویب پتے ( URL ) کو پاس کرکے انٹرنیٹ سے ایک فائل کو پسماندہ کریں گے.

ہم ہیڈر فائل کی تعمیر کے ساتھ شروع کریں گے. یہ تفصیل کے دیکھیں کنٹرول کنسرر کے لئے بہت بنیادی ہیڈر فائل کی ایک مثال ہے، ہماری فائل کو پیش کرنے کیلئے کم سے کم ضروریات ہیں:

@ انٹرفیس RootViewController: UITableViewController {
DetailViewController * detailViewController؛

NSXMLParser * rssParser؛
NSMutableArray * مضامین؛
NSMutableDictionary * شے؛
NSString * currentElement؛
NSMutableString * عنصر وول؛
BOOL errorParsing؛
}

property (غیر حقیقی، برقرار رکھنا) IBOutlet DetailViewController * detailViewController؛

- (باطل) پیرس XMLFileAtURL: (NSString *) یو آر ایل؛

پیرس XMLFileAtURL تقریب ہمارے لئے عمل شروع کرے گا. جب یہ ختم ہوجاتا ہے تو، NSMutableArray "مضامین" ہمارے ڈیٹا کو برقرار رکھے گی. صف XML فائل میں میدان کے نام سے متعلق چابیاں کے ساتھ قابل اطمینان لغات سے بنایا جائے گا.

اب ہم نے متغیرات کو مرتب کیا ہے، ہم ایم ایم فائل میں عمل سے ملیں گے.

- (صفر) پیرس ڈڈڈ اسٹار دستاویز دستاویز: (NSXMLParser *) پارسر {
NSLog (@ "فائل مل گیا اور شروع کر دیا")؛

}

یہ عمل عمل کے آغاز پر چلتا ہے. اس فنکشن میں کچھ بھی ڈالنے کی کوئی ضرورت نہیں ہے، لیکن اگر آپ کسی کام کو کرنا چاہتے ہیں تو فائل کو جلد شروع ہونے کے بعد، یہ آپ کو اپنے کوڈ ڈالے گا.

- (باطل) پیرس XMLFileAtURL: (NSString *) یو آر ایل
{

ایپل ویبرکیٹ / 525.27.1 (کلوکس کی طرح KHTML) ورژن / 3.2.1 سفاری / 525.27.1 "؛ NSString * ایجنٹسٹنگ = @" موزیلا / 5.0 (میکنٹوش؛ یو؛ انٹیل میک OS ایکس 10_5_6؛ ")؛
NSMutableURLRequest * درخواست = [NSMutableURLRequest requestWithURL:
[NSURL URLWithString: URL]]؛
[سیٹ سیٹ کریں: ایجنٹ اسٹریٹنگ کے لئے ایچ ٹی ٹی پی ایچڈرر فیلڈ: @ "صارف کے ایجنٹ"]؛
xmlFile = [NSURLConnection بھیجیں سنکروسیس سے متعلق سوال: واپسی کی درخواست ریفریپریشن: نیل غلطی: نیل]؛


مضامین = [[NSMutableArray Alloc] init]؛
errorParsing = NO؛

RssParser = [[NSXMLParser Alloc] initWithData: xmlFile]؛
[rssParser setDelegate: خود]؛

// آپ کو ان میں سے کچھ تبدیل کرنے کی ضرورت ہو سکتی ہے جس پر آپ XML فائل کی قسم پر قابو پائیں گے
[rssParser سیٹShouldProcessNamespaces: NO]؛
[rssParser سیٹShouldReportNamespacePrefixes: NO]؛
[RssParser سیٹShouldResolveExternalEntities: NO]؛

[rssParser parse]؛

}

یہ فنکشن ایک مخصوص ویب ایڈریس (یو آر ایل) میں فائل ڈاؤن لوڈ کرنے کے لئے انجن کو ہدایت دیتا ہے اور اس کو پار کرنے کے عمل کو شروع کرتا ہے.

ہم ریموٹ سرور کہہ رہے ہیں کہ ہم میک پر چلتے ہوئے سفاری ہیں صرف اس صورت میں جب سرور کو موبائل ورژن میں آئی فون / رکن کو ری ڈائریکٹ کرنے کی کوشش ہوتی ہے.

اختتام کے اختیارات مخصوص XML فائلوں کے لئے مخصوص ہیں. زیادہ تر آر ایس ایس فائلوں اور عام XML فائلوں کو ان کی ضرورت نہیں ہوگی.

- (صفر) پیرس: (NSXMLParser *) پارسر پیرسآرورڈ: (NSError *) parseError {

NSString * errorString = [NSString stringWithFormat: @ "غلطی کوڈ٪ i"، [parseError code]]؛
NSLog (@ "XML پیسنے کی خرابی:٪ @"، غلطی اسٹریٹ)؛


errorParsing = YES؛
}

یہ ایک سادہ غلطی کی جانچ پڑتال کی روٹنگ ہے جو بائنری قیمت مقرر کرے گا اگر یہ غلطی کا سامنا کرے گا. آپ کیا کر رہے ہیں اس پر منحصر ہے آپ کو مزید مخصوص چیز کی ضرورت ہوسکتی ہے. اگر آپ کو صرف غلطی کے معاملے میں پروسیسنگ کے بعد کچھ کوڈ چلانے کی ضرورت ہوتی ہے تو، غلطی سے متعلق بائنری متغیر اس وقت بلایا جا سکتا ہے.

(NSDictionary *) خصوصیت: (NSDictionary *) خصوصیت: (NSDictionary *) خصوصیت: {(صفر) پیرس: (NSXMLParser *) پیرسر کیا کیا سٹارٹ ایول: (NSString *) elementName نام اسپیس کور: (NSString *)
currentElement = [elementName کاپی]؛
عنصر وول = [[NSMutableString Alloc] init]؛
اگر (element element isEqualToString: @ "آئٹم"])) {
شے = [[NSMutableDictionary آلے] init]؛

}

}

XML پارسر کا گوشت تین افعال پر مشتمل ہے، جو ایک انفرادی عنصر کے آغاز میں چلتا ہے، جو عنصر کو پھانسی کے وسط کے دوران چلتا ہے، اور عنصر کے اختتام پر چلتا ہے.

اس مثال کے لئے، ہم آر ایس ایس کی فائلوں کے ساتھ ایک ایسی فائل کو پسماندہ کریں گے جو ایکس ایم ایل فائل کے اندر "اشیاء" کے عنوان میں عناصر کو عناصر کو توڑ دیتے ہیں. پروسیسنگ کے آغاز میں، ہم ایک عنصر کا نام "شے" کے لۓ چیک کر رہے ہیں اور جب ہمارے نئے گروپ کو پتہ چلا ہے تو ہماری شے کو لغت مختص کرنا ہے. دوسری صورت میں، ہم اپنے متغیر قدر کے لئے ابتداء کرتے ہیں.

- (صفر) پیرس: (NSXMLParser *) پارسر پایا Character: (NSString *) string {
[ElementValue اپ ڈیٹ اسٹارنگ: تار]؛
}

یہ آسان حصہ ہے. جب ہم حروف کو ڈھونڈتے ہیں، تو ہم صرف ان کے متغیر "عنصر وول" میں شامل ہیں.

- (صفر) پیرس: (NSXMLParser *) پیرس کیاEndElement: (NSString *) elementName namespaceURI: (NSString *) namespaceURI کوالیفائیو نام: (NSString *) qName {
اگر (element element isEqualToString: @ "آئٹم"])) {
[مضامین شامل کریں: [شے کاپی]]؛
} else {
[آئٹم سیٹآبیک: عنصر وۓ کے لئے کیک: elementName]؛
}

}

جب ہم نے ایک عنصر کی تکمیل کی ہے تو ہمیں دو چیزوں میں سے ایک کرنا ہوگا: (1) اگر اختتام عنصر "شے" ہے، تو ہم نے اپنے گروپ کو مکمل کر لیا ہے، لہذا ہم اپنے لغت کے ہمارے صف میں شامل کریں گے. ".

یا (2) اگر عنصر "شے" نہیں ہے تو، ہم عنصر کے نام سے ملنے والے ایک کلید کے ساتھ ہمارے لغت میں قیمت مقرر کریں گے. (اس کا مطلب یہ ہے کہ ہمیں XML فائل کے اندر اندر ہر فیلڈ کے لئے انفرادی متغیر کی ضرورت نہیں ہے. ہم ان کو مزید متحرک طور پر عملدرآمد کر سکتے ہیں.)

- (صفر) پرسیرڈڈ ایڈیڈ دستاویز: (NSXMLParser *) پارسر {

اگر (errorParsing == NO)
{
NSLog (@ "XML پروسیسنگ کیا!")؛
} else {
NSLog (@ "XML پروسیسنگ کے دوران خرابی ہوئی ہے")؛
}

}

یہ ہمارے نزدیک معمول کے لئے ضروری آخری تقریب ہے. یہ صرف دستاویز ختم کرتا ہے. آپ کسی بھی کوڈ کو ڈالیں گے جو آپ اس عمل کو ختم کرنا چاہتے ہیں یا غلطی کے معاملے میں آپ کو خاص کرنا چاہتے ہیں.

ممکنہ طور پر ایک ایسی چیز جو بہت سے ایپس کرنا ہے وہ ڈیٹا اور / یا XML فائل کو آلہ پر فائل میں محفوظ کرنے کے لئے ہے. اس طرح، اگر صارف کو انٹرنیٹ سے منسلک نہیں کیا جاتا ہے تو اگلے وقت وہ اپلی کیشن لوڈ کرسکتے ہیں، وہ اب بھی اس معلومات میں حاصل کرسکتے ہیں.

یقینا، ہم سب سے اہم حصہ نہیں بھول سکتے ہیں: فائل کو نفاذ کرنے اور اسے تلاش کرنے کے لئے ایک ویب ایڈریس دینے کے لئے آپ کی درخواست بتا!).

عمل شروع کرنے کے لئے، آپ کو کوڈ کی اس لائن کو مناسب جگہ پر شامل کرنے کی ضرورت ہے جہاں آپ XML پروسیسنگ کرنا چاہتے ہیں:

[خود پیرس XMLFileAtURL: @ "http://www.webaddress.com/file.xml"]؛