我試圖通過NSXMLParser
檢索XML文檔中DTD的公共和系統ID。雖然NSXMLParser
主要提供publicID
和systemID
選擇器,他們似乎並不適合我。 DOCTYPE標籤是這樣的:如何使用NSXMLParser獲取DTD的公共和系統ID
<!DOCTYPE Article PUBLIC "-//SoftQuad Software//DTD Journalist v2.0 20000501//EN" "file:///C:/Program%20Files/Corel/XMetaL%204/Author/Rules/journalist.dtd">
這裏是我的代碼(該文件是通過打開NSFileHandle
的readDataToEndOfFile
:
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
[parser setDelegate:self];
BOOL parseSuccessful = [parser parse];
在代理的parserDidStartDocument:
我嘗試訪問的ID:
NSLog(@"%@ : %@", [parser publicID], [parser systemID]);
但我只看到
(null) : (null)
從文檔:
一次解析操作已開始或發生錯誤後,您可以調用此方法。
所以我想這應該在parserDidStartDocument:
已經工作,但我想調用不同的委託方法這些選擇(如parser:didStartElement:namespaceURI:qualifiedName:attributes:
但沒有成功。
任何想法我做錯了嗎?