XML parsing 1.XML format for iOS
<?xml version= "1.0" encoding= "Utf-8"?> represents the XML file version, encoding used for internal text
<root> represents the root node
<CityName> Beijing </CityName> A node, CityName is the node name, Beijing node value
<item key= "1" value= "A" ></Item> key= "1" is a node attribute, key property name, "1" property value
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>
2. 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
2.1 Configuration
// Configure the XML library (to use after configuration ) // (1) Add header file search path // Header Search paths->/usr/include/libxml2 //(2) Add binary library // Link Library- lixml2.dylib //(3) source file Add compilation options -fno-objc-arc //(4) Add header file // # Import "GDataXMLNode.h"
Use of 2.2 gdata
//1. Loading and parsing XML filesNSString *path = [[NSBundle mainbundle]pathforresource:@"Xml.txt"Oftype:nil]; NSData*data =[[NSData Alloc]initwithcontentsoffile:path]; //gdataxmldocument represents an XML Document Object//Initwithdata using NSData initialization is the parsingGdataxmldocument *doc = [[Gdataxmldocument alloc]initwithdata:data options:0Error:nil]; //2. Get the specified node---xpath syntax//path to CityName:/root/systemconfig/citynameNSString *xpath =@"/root/systemconfig/cityname"; Nsarray*array =[Doc Nodesforxpath:xpath Error:nil]; //CityNameGdataxmlelement *element =[Array firstobject]; NSLog (@"name =%@ value =%@", Element.name,element.stringvalue); //3. Get the properties of the specified nodeNsarray *items = [Doc Nodesforxpath:@"/root/systemconfig/comechannel/item"Error:nil]; Gdataxmlelement*item =[Items Firstobject]; //gets the property, or the property, using the gdataxmlelement representation//item.attributes for(Gdataxmlelement *attrinchitem.attributes) {NSLog (@"Attrsname =%@ Attrsvalue =%@", 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 *elementinchAllitem) {NSLog (@"itemname =%@", Element.name); } //5. Get the value of all specified names (regardless of location)//XPath Syntax://@valueNsarray *allvalue = [Doc Nodesforxpath:@"//@value"Error:nil]; for(Gdataxmlelement *elementinchallvalue) {NSLog (@"value =%@", Element.stringvalue); } //6. Iterate through the XML file layer by row//Get root node//gdataxmlelement *root = doc.rootelement; //Get child nodes//Root.children//gets the number of child nodes//Root.childcount//gets the specified name child node//root elementsforname: (NSString *)
XPath is a language that looks for information in an XML document. XPath can be used to traverse elements and attributes in an XML document. You can get a powerful XPath tutorial in the links below.
Http://www.w3school.com.cn/xpath/index.asp
Code Link: Click I download
XML parsing of iOS