我想解析以下字符串,我從我的WebService使用SOAP接收.. 由於我無法解析我從我的Web服務收到的數據(我不知道爲什麼..請看一看這裏parsing XML using Soap Web Services)本人將數據轉換爲一個NSString,然後使用TOUCHXML解析字符串用TouchXML解析NSString?
NSString *theXML = [[NSString alloc]
initWithBytes: [webData mutableBytes]
length:[webData length]
encoding:NSUTF8StringEncoding];
,我得到的是
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetCategoryResponse xmlns="http://tempuri.org/">
<GetCategoryResult>
<Root>
<Record>
<catid>1</catid><catname>Hi</catname><catlogo>http://10.25.4.49/monsoonstore/Category/50X50.GIF</catlogo>
</Record>
</Root>
</GetCategoryResult>
</GetCategoryResponse>
</s:Body>
</s:Envelope>
,因爲我沒能獲得任何解析器讀取字符串我從web服務得到的NSData我將上面的字符串轉換爲以下(即前行爲XML我需要)
<Root><Record><catid>1</catid><catname>Hi</catname><catlogo>http://10.25.4.49/monsoonstore/Category/50X50.GIF</catlogo></Record></Root>
CXMLDocument *doc = [[CXMLDocument alloc] initWithXMLString:check options:0 error:nil];
NSArray *items = [doc nodesForXPath:@"//Root" error:nil];
for (CXMLElement *item in items)
{
NSLog(@"Root");
NSArray *titles = [item elementsForName:@"Record"];
for(CXMLElement *title in titles)
{
NSLog(@"Record");
break;
}
NSArray *categories = [item elementsForName:@"catid"];
for(CXMLElement *category in categories)
{
NSLog(@"catid");
break;
}
NSArray *artists = [item elementsForName:@"catname"];
for(CXMLElement *artist in artists)
{
NSLog(@"catname");
break;
}
.
.
.
.
根和記錄日誌被調用,而CATID不會被調用..什麼我可能做錯了?
我做到了,但NSXMLParser無法解析正確的xml標籤,而不是讀取** **作爲第一個標籤,它讀取** **作爲第一個標籤,然後我的整個xml獲取甚至用標籤和< >符號解析。它不識別**根**或**記錄**標籤 –
hemant
2011-06-04 09:36:26