=============100分,简单的xml读取问题=========

bu4ni 2009-05-05 04:32:58
这是部分测试数据:


<?xml version="1.0" encoding="utf-8" ?>
<begin>

<className>
<web0 value="bbbb.com" >这个加粗</type0>
<web value="abc.com" >sdds23</web>
<web value="cc.cn" >sdds23</web>
<web value="yy.com" >sdds23</web>
<web value="xxx.gov" >sdds23</web>
</className>

<className>
<web0 value="bbbb.com" >这个加粗</type0>
<web value="abc.com" >sdds23</web>
<web value="cc.cn" >sdds23</web>
<web value="yy.com" >sdds23</web>
<web value="xxx.gov" >sdds23</web>
</className>
</begin>

由于很多数据,只给出部分.要求如下:
用Stringbuilder把从xml读出的数据封装成以下格式

<ul>
<li style='font-weight:bold'><a href='bbbb.com'>这个加粗</a></li>
<li><a href='abc.com'>sdds23</a></li>
... ...
</ul>
cs如下形式:
[code=C#]

StringBuilder sb=new StringBuilder();
sb.AppendLine("<ul>")
//..........................此xml数据大约在3W,所以要求效率.最佳者100分送上,分不够再加,谢谢.
//............................另外,凡节点为<web0>的此项加粗
//........................... 每个<className></className>对应一个<ul></ul>的序列
sb.AppendLine("</ul>");
[/code]
...全文
94 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
沉序员 2009-05-05
good
回复
bu4ni 2009-05-05
晚上结贴了,谢谢各位
回复
bu4ni 2009-05-05
.呃...web0结尾搞错了...不好意思<web0 value="bbbb.com" >gjghjghj</web0>
是对的.打自己一下,以示惩罚~~
回复
wanghao3616 2009-05-05
xml只适合 小数据量的
大数据量 还是放数据库中方便 效率更高
回复
wanghao3616 2009-05-05
xml3万数据 。。。。
一定很高效
回复
zzxap 2009-05-05
把数据读取到dataset里面,然后用for 循环 拼字符串 用appen连接。

数据3万,不能全部展开,还要写JS收缩展开,
回复
修改了一下你的xml,可以达到要求了:

<?xml version="1.0" encoding="utf-8" ?>
<begin>

<className>
<web0 value="bbbb.com" >gjghjghj</web0>
<web value="abc.com" >sdds23</web>
<web value="cc.cn" >sdds23</web>
<web value="yy.com" >sdds23</web>
<web value="xxx.gov" >sdds23</web>
</className>

<className>
<web0 value="bbbb.com" >gjgjgjg</web0>
<web value="abc.com" >sdds23</web>
<web value="cc.cn" >sdds23</web>
<web value="yy.com" >sdds23</web>
<web value="xxx.gov" >sdds23</web>
</className>
</begin>




XmlDocument doc = new XmlDocument();
doc.Load("E:\\test.xml");
StringBuilder sb = new StringBuilder();
foreach (XmlNode node in doc.GetElementsByTagName("className"))
{
sb.Append("<ul>\n");
if (node.ChildNodes[0].Name == "web0")
sb.AppendFormat("\t<li style='font-weight:bold'><a href='{0}'>{1}</a></li>\n", node.ChildNodes[0].Attributes["value"].Value, node.ChildNodes[0].InnerText);
for (int i = 1; i < node.ChildNodes.Count; i++)
sb.AppendFormat("\t<li><a href='{0}'>{1}</a></li>\n", node.ChildNodes[i].Attributes["value"].Value, node.ChildNodes[1].InnerText);
sb.Append("</ul>\n");
}
Console.WriteLine(sb.ToString());

/*
输出:
<ul>
<li style='font-weight:bold'><a href='bbbb.com'>gjghjghj</a></li>
<li><a href='abc.com'>sdds23</a></li>
<li><a href='cc.cn'>sdds23</a></li>
<li><a href='yy.com'>sdds23</a></li>
<li><a href='xxx.gov'>sdds23</a></li>
</ul>
<ul>
<li style='font-weight:bold'><a href='bbbb.com'>gjgjgjg</a></li>
<li><a href='abc.com'>sdds23</a></li>
<li><a href='cc.cn'>sdds23</a></li>
<li><a href='yy.com'>sdds23</a></li>
<li><a href='xxx.gov'>sdds23</a></li>
</ul>

*/
回复
web0 节点以type0结束,没搞错把
回复
Jack2013tong 2009-05-05
这个不难,http://blog.csdn.net/huwei2003/archive/2009/01/17/3812557.aspx 看下这个,里面有具体的操作方法
回复
zzxap 2009-05-05
要求越来越BT,分越来越不好混了
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2009-05-05 04:32
社区公告
暂无公告