您好,登錄后才能下訂單哦!
DOM解析使用Google提供的一個開源高效的XML解析工具GDataXMLNode ,它的效率要比NSXMLParser 要快10倍
使用方式:
1.小導(dǎo)入系統(tǒng)動態(tài)鏈接庫 libxml2.2.dylib
2.在buildSettings中的Header Search Path 中添加 /usr/include/libxml2
3.在buildSettings中的Other Linker Flags 中添加 -lxml2
獲取解析文件路徑
NSString * xmlPath = [[NSBundle mainBundle] pathForResource:@"Person" ofType:@"xml"];
2.初始化xml字符串
NSString * xmlStr = [NSString stringWithContentsOfFile:xmlPath encoding:NSUTF8StringEncoding error:nil];
3.初始化一個GDataXMLDocument對象 , 因?yàn)榻馕鰰r所有的內(nèi)容都是從該對象中獲取,(所以需要將要解析的內(nèi)容放入該對象)
GDataXMLDocument * document = [[GDataXMLDocument alloc]initWithXMLString:xmlStr options:0 error:nil];
4.獲取根節(jié)點(diǎn) (GDataXmlElement)
GDataXMLElement * rootElement = [document rootElement];
5.獲取根節(jié)點(diǎn)的所有子節(jié)點(diǎn)
NSArray * personElements = [rootElement elementsForName:@"person"];
6.遍歷數(shù)組,得到每一個person節(jié)點(diǎn),然后再得到person節(jié)點(diǎn)下的子節(jié)點(diǎn)
for (GDataXMLElement * element in personElements)
{
獲取person節(jié)點(diǎn)下的name節(jié)點(diǎn)
GDataXMLElement * nameElement = [element elementsForName:@"name"].firstObject;
(1).獲取開始標(biāo)簽和結(jié)束標(biāo)簽中間的值
NSString * name = [nameElement stringValue];
(2).獲取標(biāo)簽中屬性中存儲的數(shù)據(jù)
屬性對應(yīng)的類GDataXMLNode
GDataXMLNode * nameNode = [nameElement attributeForName:@"name"];
NSString * name = [nameNode stringValue];
}
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。