首页 新闻 会员 周边 捐助

asp.net解析xml文本的最佳方法

0
悬赏园豆:20 [已解决问题] 解决于 2013-10-14 15:23
<PlaceSearchResponse>
<status>0</status>
<message>ok</message>
<total>852</total>
<results>
<result>
<name>新南华大酒店田林店</name>
<location>
<lat>31.176064</lat>
<lng>121.418143</lng>
</location>
<address>徐汇区田林路140号越界创意园区内(近苍梧路)</address>
<telephone>(021)33676667</telephone>
<uid>78bd50f72c32d74231870a47</uid>
<detail_info>
<tag>美食,本帮菜,漕河泾/田林</tag>
<detail_url>
http://api.map.baidu.com/place/detail?uid=78bd50f72c32d74231870a47&output=html&source=placeapi_v2
</detail_url>
<type>cater</type>
<distance>1308</distance>
<price>93</price>
<overall_rating>3.5</overall_rating>
<service_rating>3</service_rating>
<environment_rating>4</environment_rating>
<image_num>90</image_num>
<comment_num>1806</comment_num>
</detail_info>
</result>
<result>
<name>谷村</name>
<location>
<lat>31.177593</lat>
<lng>121.419645</lng>
</location>
<address>徐汇区苍梧路14号25铺(近田林路)</address>
<telephone>18930726485</telephone>
<uid>881a28e79ea5975ef842b2a4</uid>
<detail_info>
<tag>美食,东南亚菜,漕河泾/田林</tag>
<detail_url>
http://api.map.baidu.com/place/detail?uid=881a28e79ea5975ef842b2a4&output=html&source=placeapi_v2
</detail_url>
<type>cater</type>
<distance>1355</distance>
<price>48</price>
<overall_rating>4.5</overall_rating>
<service_rating>5</service_rating>
<environment_rating>4</environment_rating>
<image_num>10</image_num>
<discount_num>1</discount_num>
<comment_num>205</comment_num>
</detail_info>
</result>
</results>
</PlaceSearchResponse>
 
例如上面xml的string串,我只需要 <name>、<distance>、<lat>、<lng>标签的值,
最好给点实例代码
孤_的主页 孤_ | 初学一级 | 园豆:13
提问于:2013-10-14 12:00
< >
分享
最佳答案
0

public void Select(string xmlPath)

 {

 XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(xmlPath);

 //取根结点

 var root = xmlDoc.DocumentElement;//取到根结点

 //取指定的单个结点

 XmlNode oldChild = xmlDoc.SelectSingleNode("PlaceSearchResponse/name");

 

 //取指定的结点的集合

 XmlNodeList nodes = xmlDoc.SelectNodes("PlaceSearchResponse/name");

}

这是非linq的取法 SelectNodes("PlaceSearchResponse/name"); 如果name还有上级则需要加上级的名字PlaceSearchResponse/XXX/name

收获园豆:20
Zery | 大侠五级 |园豆:6151 | 2013-10-14 12:36
其他回答(5)
0

Linq

何以解忧唯有撸码 | 园豆:37 (初学一级) | 2013-10-14 12:06
0

也可以 正则表达式

wolfy | 园豆:2636 (老鸟四级) | 2013-10-14 12:56

有示例代码么

支持(0) 反对(0) 孤_ | 园豆:13 (初学一级) | 2013-10-14 12:56

@孤_: 我刚刚看了 正则表达式写起来 比较麻烦 我写的正则表达式 只能匹配第一个result。还是用二楼提供的方法把

支持(0) 反对(0) wolfy | 园豆:2636 (老鸟四级) | 2013-10-14 13:22
0

用Linq to XML,推荐参考:LINQ之路系列博客之第五部分

 
 
dudu | 园豆:31053 (高人七级) | 2013-10-14 13:48
0

Linq or 一个个读取

btbear3 | 园豆:247 (菜鸟二级) | 2013-10-14 13:55
0

linq很好很强大

平常心队长 | 园豆:1113 (小虾三级) | 2013-10-14 14:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册