XML parsing 1.XML format for iOS
<?xml version= "1.0" encoding= "Utf-8"?> version, encoding= "Utf-8" represents the encoding used for internal text
<root> represents the root node.
<CityName> Beijing </CityName> <CityName> Beijing---<CityName>: node name, Beijing: Junction value
<item key= "1" value= "A" ></Item> key= "1" is a node attribute, key property name, "1" property value
2. Note: The XML structure is understood as a layered nested tree structure
<?XML version= "1.0" encoding= "Utf-8"?><Root> <Systemconfig> <CityName>Beijing</CityName> <Citycode>201</Citycode> <Parentcitycode>0</Parentcitycode> <AreaCode>010</AreaCode> <Agreementurl></Agreementurl> <Intentionlevel> <ItemKey= "1"value= "A"></Item> <ItemKey= "2"value= "B"></Item> <ItemKey= "3"value= "C"></Item> </Intentionlevel> <Comechannel> <ItemKey= "1"value= "Newspaper"></Item> <ItemKey= "2"value= "Magazine"></Item> </Comechannel> <Buycarbudget> <ItemKey= "1"value= "40.5 million"></Item> <ItemKey= "2"value= "50.6 million"></Item> </Buycarbudget> <Intentioncolor> <ItemKey= "1"value= "Red"></Item> <ItemKey= "2"value= "Yellow"></Item> </Intentioncolor> </Systemconfig></Root>
3. How to use Gdata Open Source Library for XML parsing
Common parsing methods of XML
(1) UNIX-LIBXML2 C interface
(2) Nsxmlparser UI provides an XML parsing library that is cumbersome to use
(3) Google development Gdata
3.1 XMLConfiguration
3.2 Gddata Use (remember to add header file: #import "GDataXMLNode.h")
NSString *path = [[NSBundle mainbundle] Pathforresource:@"Xml.txt"Oftype:nil]; NSData*data =[[NSData alloc] initwithcontentsoffile:path]; Gdataxmldocument*doc = [[Gdataxmldocument alloc] initwithdata:data options:0Error:nil]; //2. Get the specified node//cityname Path:/root/systemconfig/citynameNsarray *array = [Doc Nodesforxpath:@"/root/systemconfig/cityname"Error:nil]; Gdataxmlelement*element =[Array firstobject]; NSLog (@"name =%@,value =%@", Element.name,element.stringvalue); //3. Get properties for a specified nodeNsarray *items = [Doc Nodesforxpath:@"/root/systemconfig/comechannel/item"Error:nil]; Gdataxmlelement*item =[Items Firstobject]; //Get Properties, properties using Gdataxmlelement for(Gdataxmlelement *attrinchitem.attributes) {NSLog (@"a-name =%@ avalue =%@", Attr.name,attr.stringvalue); } //4. Get all nodes of the specified name, regardless of location//XPath Syntax://ItemNsarray*allitem = [Doc Nodesforxpath:@"//item"Error:nil]; for(Gdataxmlelement *einchAllitem) {NSLog (@"name =%@", e.name); } //5. Get all attributes of the specified name (no matter which node) ////xpath Syntax://@valueNsarray *allvalue = [Doc Nodesforxpath:@"//@value"Error:nil]; for(Gdataxmlelement *einchallvalue) {NSLog (@"value =%@", E.stringvalue); } //6. Iterate through the XML file layer by row//Get root nodeGdataxmlelement *root =doc.rootelement; //Get child nodes//Root.children//gets the number of child nodes//Root.childcount//Gets the child node of the specified name//root elementsforname: (NSString *)
XML parsing of iOS