<?xml version="1.0" encoding="UTF-8"?>
-<cat> -<status> <code>1</code> <message>Get domain list success.</message> <created_at>2011-08-07 01:46:03</created_at> </status> -<info> <domain_total>3</domain_total> </info> -<domains> -<item> <id>240481</id> <name>xx1.com</name> <grade>D_Free</grade> <status>enable</status> -<ext_status>
<![CDATA[]]>
</ext_status> <records>13</records> <updated_on>2011-06-21 13:17:25</updated_on> </item> -<item> <id>397274</id> <name>xx2.com</name> <grade>D_Free</grade> <status>enable</status> -<ext_status>
<![CDATA[]]>
</ext_status> <records>18</records> <updated_on>2011-06-21 13:43:17</updated_on> </item> -<item> <id>240340</id> <name>xx3.com</name> <grade>D_Free</grade> <status>enable</status> -<ext_status>
<![CDATA[]]>
</ext_status> <records>189</records> <updated_on>2011-08-06 20:21:24</updated_on> </item> </domains> </cat>
我需要domains下的三条item的子节点,包括下面的属性值
这个用dataset好像无法实现?这有三级子节点了.
解决方案 »
- 关于窗体关闭的问题
- 做过SSIS包的大侠请进,请教有关访问"脚本任务"中的变量的疑问
- 紧急求助:为什么我机器上的Visual Studio2005突然无法打开??????????????
- 问个经验性的问题
- 关于弹出消息窗口
- winform mschart的问题
- 第2次提问:请高人进来看看,顶酷暑,拜求解答!!!!!
- 救助:搞了好几天的.net环境下的每日编译环境,都没有搞定,有做过的或者正在做的,帮帮我吧,难受死了...
- 报表显示不完字段的内容,怎么办?在线立结(1:30-6:00),QQ:1779456
- (散分)毕业了,在穿上了五条裤衩的同时痛苦地送别同学
- 有关sqlserver事务的疑问
- 怎样打开web.config文件
void Main()
{
string xml=@"<?xml version=""1.0"" encoding=""UTF-8""?>
<cat> <status> <code>1</code> <message>Get domain list success.</message> <created_at>2011-08-07 01:46:03</created_at> </status> -<info> <domain_total>3</domain_total> </info> -<domains> -<item> <id>240481</id> <name>xx1.com</name> <grade>D_Free</grade> <status>enable</status> -<ext_status>
<![CDATA[]]>
</ext_status> <records>13</records> <updated_on>2011-06-21 13:17:25</updated_on> </item> -<item> <id>397274</id> <name>xx2.com</name> <grade>D_Free</grade> <status>enable</status> -<ext_status>
<![CDATA[]]>
</ext_status> <records>18</records> <updated_on>2011-06-21 13:43:17</updated_on> </item> -<item> <id>240340</id> <name>xx3.com</name> <grade>D_Free</grade> <status>enable</status> -<ext_status>
<![CDATA[]]>
</ext_status> <records>189</records> <updated_on>2011-08-06 20:21:24</updated_on> </item> </domains> </cat>";
DataSet ds=new DataSet();
XElement data=XElement.Parse(xml);
var query=from x in data.Descendants("domains")
from item in x.Elements("item")
select new
{
id=item.Element("id").Value,
name=item.Element("name").Value,
//下边的以此类推,自己添加,你懂的
};
Console.WriteLine(query);
}
<status>
<code>1</code>
<message>Get domain list success.</message>
<created_at>2011-08-07 01:46:03</created_at>
</status> <info>
<domain_total>3</domain_total>
</info> <domains>
<item>
<id>240481</id> <name>xx1.com</name> <grade>D_Free</grade> <status>enable</status> <ext_status> <![CDATA[]]> </ext_status> <records>13</records> <updated_on>2011-06-21 13:17:25</updated_on>
</item> <item>
<id>397274</id> <name>xx2.com</name> <grade>D_Free</grade> <status>enable</status> <ext_status> <![CDATA[]]> </ext_status> <records>18</records> <updated_on>2011-06-21 13:43:17</updated_on>
</item> <item>
<id>240340</id> <name>xx3.com</name> <grade>D_Free</grade> <status>enable</status> <ext_status> <![CDATA[]]> </ext_status> <records>189</records> <updated_on>2011-08-06 20:21:24</updated_on>
</item>
</domains>
</cat>";
XmlDocument dom = new XmlDocument();
dom.LoadXml(xml); XmlNodeList list = dom.SelectNodes(@"/cat/domains/item/child::*/child::text()");
for (int i = 0; i < list.Count; i++)
{
Response.Write(list[i].OuterXml);
}
OuterXml
这个关键字好像找不到,用你上面的语句,
winform
更正下这个XElement data = XElement.Load(path);
var query = from x in data.Descendants("domains")
from item in x.Elements("item")
select new
{
id=item.Element("id").Value,
name=item.Element("name").Value };
foreach (var item in query)
{
MessageBox.Show(item.id);
MessageBox.Show(item.name);
}这样才正确
XElement.Parse(strig ..)这里能只能是xml格式的字符串吧?你声明了string xml,是对的.接路径只能
XElement.Load(string path)不过 Console.WriteLine(query);
这个有点不太明白,能直接这样显示出来么?
这不是在VS内写的代码
是在一个小工具内写的测试代码 在这个工具内可以直接输出结果