XML SAX 解析本地檔案

2021-07-05 11:55:03 字數 1778 閱讀 2682

第一步:把檔案拖入工程中。

第二步:建立乙個與這個檔案對應的model模型,在.h中宣告對應的屬性,在.m中定義兩個方法。

@implementationstudent

//防止kvc出錯:這是為不識別的key重寫的方法

-(void)setvalue:(id)value forundefinedkey:(nsstring *)key

else

if ([key isequaltostring:@"nsstring"])

//列印出崩潰資訊

nslog(@"key:%@",key);

}//debug模式校驗物件--除錯模式下

-(nsstring *)description

@end

第三步:開始解析

//1.獲取檔案路徑

nsstring

*path = [[

nsbundle

mainbundle] pathforresource:

@"studentinfo_xml"

oftype:

@"txt"];

//2.根據檔案路徑來建立data物件

nsdata

*data = [[

nsdata

alloc]initwithcontentsoffile:path];

//3.根據data物件來建立解析物件

nsxmlparser *parser = [[nsxmlparser

alloc]initwithdata:data];

//4.設定**物件

[parser setdelegate:self];

//6.開始解析命令-->實現協議方法

[parser parse];

其中,第5步為:遵循協議

//5.遵循協議

@inte***ce

viewcontroller

()第四步:實現**方法

#pragma mark -- sax **步驟 --

//1.開始文件解析

-(void)parserdidstartdocument:(nsxmlparser *)parser

//2.開始標籤解析

-(void)parser:(nsxmlparser *)parser didstartelement:(nsstring *)elementname namespaceuri:(nsstring *)namespaceuri qualifiedname:(nsstring *)qname attributes:(nsdictionary *)attributedict

}//3.獲取標籤內容

-(void)parser:(nsxmlparser *)parser foundcharacters:(nsstring *)string

//4.結束標籤解析

-(void)parser:(nsxmlparser *)parser didendelement:(nsstring *)elementname namespaceuri:(nsstring *)namespaceuri qualifiedname:(nsstring *)qname

//後面兩步只是在自己寫的時候會有,產品上線不要有

//5.結束文件解析

-(void)parserdidenddocument:(nsxmlparser *)parser

}//6.錯誤處理

-(void)parser:(nsxmlparser *)parser parseerroroccurred:(nserror *)parseerror

XML(SAX)和Json解析分析

xml sax 和json解析分析 一 xml解析步驟 分析 xml解析最終是通過xmlreader的物件來關聯乙個自己繼承自defaulthandler抽象類 表示乙個解析器,它是通過讀資料流中對應的標籤時觸發裡面對應的方法 通過重寫裡面的 開始解析xml檔案 當讀到 檔案頭開始標籤 事件觸發,執...

XML DOM 解析本地檔案

1.獲取檔案路徑 nsbundle 獲取包 nsbundle bundle nsbundle mainbundle nsstring path bundle pathforresource studentinfo xml oftype txt 1kb 1024b 1mb 1024kb 1gb 102...

讀取本地json檔案,解析json

data.json 檔案同目錄下 import json 引入模組 count 1 開啟乙個json檔案 data open data.json encoding utf 8 轉換為python物件 strjson json.load data flag false lockflag false w...