求解用kissxml怎么解析xml数据

打转的风铃 2011-10-28 04:42:22
本人已经收到xml包,并转换好了,xml现在是下面的文本。

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ns1:getPartListResponse xmlns:ns1="http://services.fgseh.com">
<ns1:out><RS><c>1</c><D>

<P>
<pn>实话实说</pn>
<id>01001001</id>
<ds>关注人性、关注社会民生。</ds>
<tn>361963</tn>
<rn>2375164</rn>
<sn>133680293</sn>
</P>

<P>
<pn>疯狂贴图</pn>
。。。。。。
</P></D></RS></ns1:out></ns1:getPartListResponse></soap:Body></soap:Envelope>

我想把每个p标签里面的数据,都放到一个字典类型里面。然后把字典类型的实例都放到一个数组中去,我用的是kissxml。下面贴语句。

-(void)kissXMLForString1:(NSString *)xmlString
{
DDXMLDocument *xmlDoc = [[DDXMLDocument alloc]initWithXMLString:xmlString options:0 error:nil];

NSArray *items = nil;//临时存放数据
NSDictionary *Dict = nil;

items = [xmlDoc nodesForXPath:KP error:nil];
NSLog(@"%@",KP);
NSLog(@"%@",items);
for (DDXMLElement *item in items) {
Dict = [item attributesAsDictionary];
NSLog(@"%@",Dict);
[Allarray addObject:Dict];
//NSString *sss = [[item attributeForName:@"pn"] stringValue];
//NSLog(@"%@",sss);
}
}
语句很简单,可是items里面却没有数据,求各位大侠帮帮忙,我怎么才能解析到数据,并放到allarray里面!!!
多谢!
...全文
770 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwang89123 2013-04-01
  • 打赏
  • 举报
回复
楼主,你好,我也遇到你同样的问题:比如: <P> <pn>实话实说</pn> <id>01001001</id> <ds>关注人性、关注社会民生。</ds> <tn>361963</tn> <rn>2375164</rn> <sn>133680293</sn> </P> 要取得<P>标签的string字符串你是怎么做到的呢?感觉用自带的nsxmlparse好像很麻烦,我也还不知道怎么用了,或者有木有简单点的方法?传授一下,谢谢~~
woskxmcnvb 2011-11-24
  • 打赏
  • 举报
回复
items = [xmlDoc nodesForXPath:KP error:nil];
这个KP是什么东西啊?
我感觉这个KP应该换成@"P"或者@"//P"试下,这样才能获取到<P>的个数,也就是你items的count
打转的风铃 2011-11-01
  • 打赏
  • 举报
回复
额???五楼呢??????断楼了?
打转的风铃 2011-11-01
  • 打赏
  • 举报
回复
额,最后还是用自带的nsxmlparser解决了。
真是服了,真麻烦!
谢谢大家!
打转的风铃 2011-10-31
  • 打赏
  • 举报
回复
2楼,这是什么代码???c#?
小裴同学 2011-10-31
  • 打赏
  • 举报
回复
kissxml。。没用过啊。。都是用这个吧。。

public List<UserManager> toParserUserXml(InputStream is) {
String xml = inputToString(is);
SAXParserFactory saxPraseFactory = SAXParserFactory.newInstance();
infos = new ArrayList<UserManager>();
try {
XMLReader xmlReader = saxPraseFactory.newSAXParser().getXMLReader();
UserNumContentHandler userContentHandler = new UserNumContentHandler(
infos);
xmlReader.setContentHandler(userContentHandler);
xmlReader.parse(new InputSource(new StringReader(xml)));
// for (Iterator iterator = infos.iterator(); iterator.hasNext();) {
// UserManager um = (UserManager) iterator.next();
// result[index++] = um.getName();
// }
} catch (Exception e) {
e.printStackTrace();
}
打转的风铃 2011-10-31
  • 打赏
  • 举报
回复
up,没人打理我???
zzxxdd 2011-10-31
  • 打赏
  • 举报
回复
TouchXML 我用的是这个,网上介绍的也很多,楼主试试这个吧

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧