Use nsxmlparser to parse XML files
1. Set the delegate object and start Parsing
Nsxmlparser * parser = [[nsxmlparser alloc] initwithdata: Data]; // you can also use initwithcontentsofurl to directly download the object, but this is not the case for one reason:
// It's also possible to have nsxmlparser download the data, by passing it a URL, but this is not desirable
// Because it gives less control over the network, especially in responding to connection errors.
[Parser setdelegate: Self];
[Parser parse];
2. Common delegate Methods
-(Void) parser :( nsxmlparser *) parser didstartelement :( nsstring *) elementname
Namespaceuri :( nsstring *) namespaceuri
Qualifiedname :( nsstring *) QNAME
Attributes :( nsdictionary *) attributedict;
-(Void) parser :( nsxmlparser *) parser didendelement :( nsstring *) elementname
Namespaceuri :( nsstring *) namespaceuri
Qualifiedname :( nsstring *) QNAME;
-(Void) parser :( nsxmlparser *) parser foundcharacters :( nsstring *) string;
-(Void) parser :( nsxmlparser *) parser parseerroccurred :( nserror *) parseerror;
Static nsstring * feedurlstring = @ "http://www.yifeiyang.net/test/test.xml ";
3. Application Example
-(Void) parsexmlfileaturl :( nsurl *) URL parseerror :( nserror **) Error
{
Nsxmlparser * parser = [[nsxmlparser alloc] initwithcontentsofurl: url];
[Parser setdelegate: Self];
[Parser setshouldprocessnamespaces: No];
[Parser setshouldreportnamespaceprefixes: No];
[Parser setshouldresolveexternalentities: No];
[Parser parse];
Nserror * parseerror = [parser parsererror];
If (parseerror & error ){
* Error = parseerror;
}
[Parser release];
}
-(Void) parser :( nsxmlparser *) parser didstartelement :( nsstring *) elementname namespaceuri :( nsstring *) namespaceuri
Qualifiedname :( nsstring *) QNAME attributes :( nsdictionary *) attributedict {
// Element start handle
If (QNAME ){
Elementname = QNAME;
}
If ([elementname isinclutostring: @ "user"]) {
// Output Attribute Value
Nslog (@ "name is % @, age is % @", [attributedict objectforkey: @ "name"], [attributedict objectforkey: @ "Age"]);
}
}
-(Void) parser :( nsxmlparser *) parser didendelement :( nsstring *) elementname namespaceuri :( nsstring *) namespaceuri
Qualifiedname :( nsstring *) QNAME
{
// End handle of the element
If (QNAME ){
Elementname = QNAME;
}
}
-(Void) parser :( nsxmlparser *) parser foundcharacters :( nsstring *) String
{
// Obtain the text of an element
}
Nserror * parseerror = nil;
[Self parsexmlfileaturl: [nsurl urlwithstring: feedurlstring] parseerror: & parseerror];
Http://blog.csdn.net/z251257144/article/details/7175634
XML topic: Using nsxmlparser to parse XML files