我試圖分析在iPhone上使用NSXMLParser
一些XML。獲取XML子元素 - 包括標籤名稱
當我發現我想要的元素,我想擁有的一切爲是開始元素和結束元素之間。
例如,給定:
<A>
<K>
<C>
<D>dddd</D>
</C>
<E> eeee </E>
</K>
<F> ffff </f>
</A>
我想指定ķ
和接收:
<C>
<D> dddd </D>
</C>
<E> eeee </E>
然而,目前的NSXMLParser忽略所有的<
,>
和屬性。 我在委託方法中放入了什麼,以確保我在指定的標籤之間獲得所有內容?
這是我現在所擁有的:提前
//---when the start of an element is found---
-(void) parser:(NSXMLParser *) parser didStartElement:(NSString *) elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *) qName attributes:(NSDictionary *) attributeDict {
if([elementName isEqualToString:@"ns11:createNewPrincipalResponse"])
{
elementFound = YES;
NSLog(@"PrincResp FOUND");
}
}
-(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string
{
if (elementFound)
{
[parseResults appendString: string];
}
}
//---when the end of element is found---
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
if ([elementName isEqualToString:@"ns11:createNewPrincipalResponse"])
{
//---displays the country---
NSLog(@"\n******************\nParse Results...\n*************\n\n%@",parseResults);
[parseResults setString:@""];
token = [NSString stringWithString:parseResults];
elementFound = FALSE;
}
}
謝謝!
好的,我成功地獲得了列和行號,任何想法我可以使用哪種方法從某個列和行提取子字符串到另一列和行? – klyngbaek 2011-04-05 17:07:43
在已編輯的答案中看到一個示例 – SVD 2011-04-05 17:40:29
謝謝。你的代碼可以做到這一點。然而,或由解析器返回的列和行號不正確的指標:(。它可能有一些做輸入到解析器是數據,而上面的代碼也適用於字符串。 – klyngbaek 2011-04-05 20:17:15