苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 3027|回复: 4

[其他] 看我写的这个读取xml的代码能简单点不

[复制链接]
发表于 2013-7-1 19:14:38 | 显示全部楼层 |阅读模式
本帖最后由 Monn 于 2013-7-2 14:21 编辑

我要获取,group的name的值,tag的name的值,还有tag下的value和tips的值。。
我写的那个都获取到了,但是获取tag下的value和tips的时候都需要写个循环,有没有简单的写法啊?俺是新手,不太会。。。请高手帮忙。。

<?xml version="1.0" encoding="utf-8"?>
<tags>
  <group name="测试组">
    <tag name="测试标签1">
      <value>标签1</value>
      <tips>标签说明1</tips>
    </tag>
    <tag name="测试标签2">
      <value>标签2</value>
      <tips>标签说明2</tips>
    </tag>
  </group>
  <group name="测试组1">
    <tag name="测试标签3">
      <value>标签3</value>
      <tips>标签说明3</tips>
    </tag>
    <tag name="测试标签4">
      <value>标签4</value>
      <tips>标签说明4</tips>
    </tag>
  </group>  
</tags>

[code=csharp]
XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("test.xml");
            XmlNode rootnode = xmlDoc.SelectSingleNode("tags");
            string group = "";
            string tag = "";
            foreach (XmlNode node in rootnode.ChildNodes)
            {
                group=node.Attributes["name"].Value + "\r\n";
                richTextBox1.AppendText(group);
                foreach (XmlNode node1 in node.ChildNodes)
                {
                    tag= node1.Attributes["name"].Value + "\r\n";
                    foreach (XmlNode item1 in node1.SelectSingleNode("value"))
                    {
                        string value =item1.InnerText;                        
                        richTextBox1.AppendText("   " + value);
                    }
                    foreach (XmlNode item1 in node1.SelectSingleNode("tips"))
                    {
                        string tips = item1.InnerText;
                        richTextBox1.AppendText("   " + tips);
                    }
                    richTextBox1.AppendText("   "+tag);
                }               
            }
[/code]



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-7-2 14:27:30 | 显示全部楼层
SelectSingleNode将这个方法修改为SelectNodes
发表于 2013-7-2 14:39:13 | 显示全部楼层
[code=csharp]StringBuilder sb = new StringBuilder();
            sb.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
            sb.Append("<tags>");
            sb.Append("  <group name=\"测试组\">");
            sb.Append("    <tag name=\"测试标签1\">");
            sb.Append("      <value>标签1</value>");
            sb.Append("      <tips>标签说明1</tips>");
            sb.Append("    </tag>");
            sb.Append("    <tag name=\"测试标签2\">");
            sb.Append("      <value>标签2</value>");
            sb.Append("      <tips>标签说明2</tips>");
            sb.Append("    </tag>");
            sb.Append("  </group>");
            sb.Append("  <group name=\"测试组1\">");
            sb.Append("    <tag name=\"测试标签3\">");
            sb.Append("      <value>标签3</value>");
            sb.Append("      <tips>标签说明3</tips>");
            sb.Append("    </tag>");
            sb.Append("    <tag name=\"测试标签4\">");
            sb.Append("      <value>标签4</value>");
            sb.Append("      <tips>标签说明4</tips>");
            sb.Append("    </tag>");
            sb.Append("  </group>  ");
            sb.Append("</tags>");

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(sb.ToString());
            string group = string.Empty, tag = string.Empty;
            foreach (XmlNode node in xmlDoc.SelectNodes("//group"))
            {
                richTextBox1.AppendText(node.Attributes["name"].Value + "\r\n");
                foreach (XmlNode item in node.SelectNodes("tag"))
                {
                    tag = item.Attributes["name"].Value + "\r\n";
                    string value = item.SelectSingleNode("value").InnerText;
                    richTextBox1.AppendText("   " + value);

                    string tips = item.SelectSingleNode("tips").InnerText;
                    richTextBox1.AppendText("   " + tips);
                    richTextBox1.AppendText("   " + tag);
                }
            }[/code]
QQ截图20130702143835.jpg
发表于 2013-9-22 11:01:13 | 显示全部楼层

苏老大你这一个是要什么版本都能用的吗?
如果要写入么办呢?
如果是没有的话可以直接建立对吗,有的话那上面的话就不用写对吗?

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-28 10:56

© 2014-2021

快速回复 返回顶部 返回列表