基本插入:
1. 从http://code.google.com/p/gdata-objectivec-client/downloads/list下载“gdata-objective-c client library.”. 解压缩文件,找到Source\XMLSupport,并且将其中的GDataXMLNode.h 和 GDataXMLNode.m文件拖到项目中
2. 将Build Settings页中,顶部的“Basic”标签切换到“All”,找到“Paths\Header Search Paths”项,并添加“/usr/include/libxml2”到列表中
3. 找到“Linking\Other Linker Flags”项,并添加“-lxml2”到列表中
读取XML文件:<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><getylzlistResponse xmlns="http://tempuri.org/"><getylzlistResult>青峰村,0 ,29.60338095,118.43454037;小川,0 ,29.80900066,118.64537885;</getylzlistResult></getylzlistResponse></soap:Body>
读取代码:
NSData* data=[WebService SoapInvoke:methoed params:params];
NSString* responseXMLResult=[[NSString alloc] initWithData:data encoding:
NSUTF8StringEncoding];
NSError *error;
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithXMLString: responseXMLResult
options:0 error:&error];
//得到根节点
GDataXMLElement* rootElement = [doc rootElement];
if (doc == nil) { return; }
NSLog(@"%@", doc.rootElement.XMLString);
//这里实际也可以从根节点得到数据,根节点即soap:Envelope,二级节点是soap:Body
NSArray *partyMembers = [doc.rootElement nodesForXPath:@"//soap:Envelope/soap:Body" error:nil
for (GDataXMLElement *partyMember in partyMembers) {
NSLog([partyMember XMLString]);//这里打印的是从soap:Body开始的XML
for (int i = 0; i < [[partyMember children] count]; i++) {
GDataXMLElement* testElement = [[partyMember children]objectAtIndex:i];
//获取channelname
NSString * titleContent = [[[testElement elementsForName:@"getylzlistResult"]objectAtIndex:0] stringValue];
//NSArray * children = [testElement children];
NSLog(titleContent);
}
}
以上代码得到:青峰村,0 ,29.60338095,118.43454037;小川,0 ,29.80900066,118.64537885;