KissXML 簡易教程

fmms 12年前發布 | 41K 次閱讀 KissXML iOS開發 移動開發

文章來源 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了

<smil xmlns="http://www.w3.org/2000/SMIL20/CR/Language"&gt;

<head> </head> <body> <par dur="120000ms" > <text region="Text" src="att000.txt" />

</par> <par dur="120000ms" > <text region="Text" src="att010.txt" /> </par> <par dur="10000ms" >

<img region="Image" src="att020.jpg"/> </par> <par dur="120000ms" > <text region="Text" src="att040.txt" />

</par>

<par dur="10000ms" > <img region="Image" src="att120.gif"/> </par> </body>

</smil></pre>

我們的目標是獲取該xml媒體內容的 src 地址
//hack to remove xmlns => avoid xpath search not works
 xmlStr = [xmlStr stringByReplacingOccurrencesOfString:@"xmlns" withString:@"noNSxml"];
 NSMutableArray* contents = [NSMutableArray array];

NSError error = nil; DDXMLDocument xmlDoc = [[DDXMLDocument alloc] initWithXMLString:xmlStr options:0 error:&error];

if (error) { NSLog(@"%@",[error localizedDescription]); return nil; }

NSArray* resultNodes = nil; resultNodes = [xmlDoc nodesForXPath:@"//audio | //text | //image | //img" error:&error];

if (error) { NSLog(@"%@",[error localizedDescription]); return nil; }

for(DDXMLElement resultElement in resultNodes) { NSString name = [resultElement name]; //audio , text or other media type NSString* fileName = [[resultElement attributeForName:@"src"] stringValue]; // 0.txt }</pre>

注意第一行,我把xmlns給刪除了,(否則kissxml無法正常使用xpath,原因位置) </div>

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!