Đây là cách hoạt động:
Có một lớp có tên là NSXMLParser. Nó được sử dụng để phân tích các tệp XML. Tuy nhiên, NSXMLParser là ngu ngốc. Tất cả những gì nó biết cách làm là phân tích cú pháp XML, nhưng nó không biết nó phải làm gì với thông tin mà nó tìm thấy.
Nhập một đại biểu. Một đại biểu giống như một vú em. Vì XMLParser không có một đầu mối phải làm gì với thông tin mà nó tìm thấy, nó đi và hỏi đại biểu của nó về mỗi và mọi thứ: "Này! Tôi bắt đầu phân tích một tài liệu! Tôi có nên làm gì không?" "Hey! Tôi tìm thấy một số CDATA! Tôi phải làm gì với nó!" "Này! Tôi tìm thấy một thẻ khác!" "Này! Tôi tìm thấy một thẻ đóng!", V.v. Tất cả những "Hey!" các câu lệnh là các phương thức ủy nhiệm, hoặc nói cách khác, chúng là các phương thức tùy chọn mà một đối tượng đại biểu có thể chọn để thực hiện. Thông thường (nhưng không phải lúc nào), đối tượng tạo NSXMLParser cũng là đại biểu, nhưng điều đó không phải là trường hợp.
Vì vậy, bạn có thể có một cái gì đó như thế này:
NSXMLParser * parser = [[NSXMLParser alloc] initWithContentsOfURL:someURLToAnXMLFile];
[parser setDelegate:self];
[parser parse];
[parser release];
Sau đó, trong cùng một đối tượng (tự), bạn có thể có một số trong những phương pháp:
- (void)parserDidStartDocument:(NSXMLParser *)parser {
//the parser started this document. what are you going to do?
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
//the parser found an XML tag and is giving you some information about it
//what are you going to do?
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
//the parser found some characters inbetween an opening and closing tag
//what are you going to do?
}
- (void)parserDidEndDocument:(NSXMLParser *)parser {
//the parser finished. what are you going to do?
}
Có một bó toàn bộ những các phương thức được liệt kê trong tài liệu. Chỉ cần truy cập tham chiếu lớp NSXMLParser và tất cả chúng đều được liệt kê trong phần "Phương thức đại biểu". Một khi bạn nhận được hang của nó, NSXMLParser là khá dễ sử dụng. Nó là SAX Parser, có nghĩa là trình phân tích cú pháp theo hướng sự kiện. Nó tìm thấy công cụ, và nó cho bạn biết về nó.
Nguồn
2009-07-07 03:01:13
điều gì không có ý nghĩa trong tài liệu trực tuyến? – hhafez
Tôi không chỉ chắc chắn những gì tôi nên ghi đè để làm cho nó hoạt động. – PF1
Không có gì để ghi đè. Bạn tạo một đối tượng riêng và chỉ định nó là đại biểu của trình phân tích cú pháp. Trong đối tượng đó, bạn trả lời một số thư nhất định (một số yêu cầu, một số tùy chọn) cho bạn biết trình phân tích cú pháp đã tìm thấy gì. –