2011-05-21 35 views
0

我想在我的應用程序中使用xpath-query進行xml解析。我的工作幾乎完成到名稱空間概念進入picture.i總是寫查詢正確,但它返回我的數組中的0個對象。我嘗試了許多博客,也在我們的stackoverflow.com許多帖子,但沒有一個不工作。 。我希望我的問題需要小修改,任何人都可以修改我的代碼。 my code 謝謝大家。 我覺得很多人試圖表明我的問題是重複的,但它是不同的,因爲沒有問題沒有爲我的問題工作。請向我提供您的建議。您的答案更多的幫助完成我的工作。如何提供名稱空間在Objective-C中使用xpath查詢

回答

0

我把它與Matt Gallagher的可可包裝一起使用libxml嗎? (在你的問題中放入你正在使用的第三方庫是有幫助的。)

當我這樣做時,我修改了Matt的代碼,以便PerformXPathQuery接受了一個額外的參數,一個名爲NSDictionary的名稱空間。 (其他功能,如PerformXMLXPathQuery也採取了這種說法,並通過對象。)

然後,在PerformXPathQuery,創建上下文後,我註冊了命名空間這樣的:

if (namespaces != nil) 
{ 
    for (NSString *key in namespaces) 
    { 
     xmlXPathRegisterNs(xpathCtx, (const xmlChar *)[key UTF8String], (const xmlChar *)[[namespaces objectForKey:key] UTF8String]); 
    } 
} 
+0

Amorya謝謝您的回答。can you please provide some info on namespace .. – ajay 2011-05-23 16:30:41

+0

我使用libxml2框架以及xpathquery.m實現類。 – ajay 2011-05-23 16:33:46

+0

LarsH對你的其他問題的回答有關於它的信息。正如他所說的,您需要修改您的Xpath查詢以爲每個標籤使用前綴。然後,您必須將該前綴註冊到XML中的名稱空間URL:您可以使用我的代碼。以他的例子,我的代碼,你會傳入一個NSDictionary與一個項目,鍵'imsq',值'http:// www.imsglobal.org/xsd/imsqti_v2p1'。 – 2011-05-24 08:06:44

相關問題