KissXML 簡易教程

文章來源 http://ixhan.com/2010/03/tutorial-of-kissxml-iphone/

KissXML 是我覺得最簡單方便的XML解析器了,更重要是很簡單的支持Xpath

在項目中使用前先簡單配置下.

  • 在這裏下載源代碼  here
  • 添加除了DDXMLTesting 外的文件
  • 根據下圖配置libxml
打開項目屬性
添加如下內容

OTHER_LDFLAGS = -lxml2

HEADER_SEARCH_PATHS = /usr/include/libxml2

如圖

KissXML 簡易教程

然後就可以使用KissXML了

01 <smil xmlns="http://www.w3.org/2000/SMIL20/CR/Language">
02  
03 <head>
04 </head>
05 <body>
06 <par dur="120000ms" >
07 <text region="Text" src="att000.txt" />
08  
09 </par>
10 <par dur="120000ms" >
11 <text region="Text" src="att010.txt" />
12 </par>
13 <par dur="10000ms" >
14  
15 <img region="Image" src="att020.jpg"/>
16 </par>
17 <par dur="120000ms" >
18 <text region="Text" src="att040.txt" />
19  
20 </par>
21  
22 <par dur="10000ms" >
23 <img region="Image" src="att120.gif"/>
24 </par>
25 </body>
26  
27 </smil>

我們的目標是獲取該xml媒體內容的 src 地址
01 //hack to remove xmlns => avoid xpath search not works
02  xmlStr = [xmlStr stringByReplacingOccurrencesOfString:@"xmlns"withString:@"noNSxml"];
03  NSMutableArray* contents = [NSMutableArray array];
04  
05  NSError* error = nil;
06  DDXMLDocument* xmlDoc = [[DDXMLDocument alloc] initWithXMLString:xmlStr options:0 error:&error];
07  
08  if (error) {
09  NSLog(@"%@",[error localizedDescription]);
10  return nil;
11  }
12  
13  NSArray* resultNodes = nil;
14  resultNodes = [xmlDoc nodesForXPath:@"//audio | //text | //image | //img"error:&error];
15  
16  if (error) {
17  NSLog(@"%@",[error localizedDescription]);
18  return nil;
19  }
20  
21  for(DDXMLElement* resultElement in resultNodes)
22  {
23  NSString* name = [resultElement name];
24  //audio , text or other media type
25  NSString* fileName = [[resultElement attributeForName:@"src"] stringValue];
26  // 0.txt
27  }

注意第一行,我把xmlns給刪除了,(否則kissxml無法正常使用xpath,原因位置)
發佈了7 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章