文章來源 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了
01 |
< smil xmlns = "http://www.w3.org/2000/SMIL20/CR/Language" > |
07 |
< text region = "Text" src = "att000.txt" /> |
11 |
< text region = "Text" src = "att010.txt" /> |
15 |
< img region = "Image" src = "att020.jpg" /> |
18 |
< text region = "Text" src = "att040.txt" /> |
23 |
< img region = "Image" src = "att120.gif" /> |
我們的目標是獲取該xml媒體內容的 src 地址
02 |
xmlStr
= [xmlStr stringByReplacingOccurrencesOfString:@ "xmlns" withString:@ "noNSxml" ]; |
03 |
NSMutableArray*
contents = [NSMutableArray array]; |
06 |
DDXMLDocument*
xmlDoc = [[DDXMLDocument alloc] initWithXMLString:xmlStr options:0 error:&error]; |
09 |
NSLog(@ "%@" ,[error
localizedDescription]); |
13 |
NSArray*
resultNodes = nil; |
14 |
resultNodes
= [xmlDoc nodesForXPath:@ "//audio
| //text | //image | //img" error:&error]; |
17 |
NSLog(@ "%@" ,[error
localizedDescription]); |
21 |
for (DDXMLElement*
resultElement in resultNodes) |
23 |
NSString*
name = [resultElement name]; |
25 |
NSString*
fileName = [[resultElement attributeForName:@ "src" ]
stringValue]; |
注意第一行,我把xmlns給刪除了,(否則kissxml無法正常使用xpath,原因位置)