读取Xml文档的元素和属性

<?xml version="1.0" encoding="utf-8" ?>
<StuInfo>
  <student>
    <ID>1001</ID>
    <Name>张三</Name>
    <Sex>男</Sex>
    <Birthday age="23">1987-1-12</Birthday>
  </student>
  <student>
    <ID>1002</ID>
    <Name>李四</Name>
    <Sex>女</Sex>
    <Birthday age="24">1986-5-12</Birthday>
  </student>
  <student>
    <ID>1003</ID>
    <Name>王二</Name>
    <Sex>男</Sex>
    <Birthday age="25">1985-1-15</Birthday>
  </student>
</StuInfo>

看看上面的文档,当我们把它加载到内存中之后,各个节点都有自己的类型,首先整个xml都是document文档

<?xml version="1.0" encoding="utf-8" ?>
它则是XmlDeclaration类型的

下面的StuInfo,student,ID,Name,sex,Birsthday都是Element类型

1001,1002,1003,张三,李四,王五等都是#Text类型的

知道上面的这些之后,那么我们在读取元素的时候就可以通过某个节点的ChildNodes属性获取其子节点的集合,然后根据节点的类型,也就是NodeType属性确定此节点是否是元素节点,或者文档节点等,元素节点的名称可以通过Names属性获取,其所对应的XML数据可以有InnerXml和OutXml,InnerText等来获取

读取属性:

要访问属性的值,必须获取该属性的所属的元素,当节点是元素的时候,可以通过HasAttribute方法查看是否存在任何与此元素相关的属性,然后检索属性,通过XmlNode.Attributes[index]获得相关值

下面看一个实例

 protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            XmlDocument doc = new XmlDocument();
            string path = Server.MapPath("~/XMLFile.xml");
            doc.Load(path);
            OperateXml(doc);
        }
    }

    #region 对xml文件进行操作的方法
    public void OperateXml(XmlNode doc)
    {
       //通过XmlDocument把xml文件加载到内存中,然后才能对其操作
       Response.Write("<li>节点类型"+doc.NodeType.ToString()+"节点名称"+doc.LocalName);
       if (!doc.HasChildNodes)
       {
           Response.Write(" " + doc.InnerXml);
       }
       if(doc.NodeType==XmlNodeType.Element)
       {
          
           if(doc.Attributes.Count>0)
           {
               XmlAttribute dd = new XmlAttribute();
              
               for (int i = 0; i < doc.Attributes.Count; i++)
               {
                   Response.Write("属性:" + doc.Attributes[i].LocalName + "=" + doc.Attributes[i].Value);
               }
           }
           if(doc.ChildNodes[0].NodeType==XmlNodeType.Text)
           {
               Response.Write(" 值为"+doc.InnerText);
           }
       } 
       if (doc.HasChildNodes)
       {
           for (int i = 0; i < doc.ChildNodes.Count; i++)
           {
               OperateXml(doc.ChildNodes[i]);
           }
       }
      
    }
    #endregion
}

在这里采用的递归的方式完成的对子节点的操作

里面的方法很多,操作的时候灵活使用!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机专业需要注意什么细节,计算机专业考生复试注意事项

计算机专业考生复试注意事项随着计算机相关技术的突飞猛进&#xff0c;对人才的职业发展也提出了更高的要求。近年来&#xff0c;计算机及相关专业一直是研究生报考的热门专业&#xff0c;复试中的竞争日益激烈。如何在复试中脱颖而出呢?导师通常看重学生的那些能力?下面就计…

驱动调试神器printk你掌握了吗?

[导读] 刚刚开始做Linux相关开发工作时&#xff0c;深感Linux内核代码庞大&#xff0c;要加些自己的驱动进内核代码树&#xff0c;常常深陷bug的泥沼难以自拔&#xff0c;今天来分享一下内核调试利器printk的使用心得。前面一段时间很忙&#xff0c;后期更文频率会渐渐回归正常…

腾讯云技术专家卢萌凯手把手教你Demo一个人脸识别程序!

欢迎大家前往腾讯云社区&#xff0c;获取更多腾讯海量技术实践干货哦~ 本文来自腾讯云技术沙龙&#xff0c;本次沙龙主题为Serverless架构开发与SCF部署实践 卢萌凯&#xff1a;毕业于东南大学&#xff0c;曾就职于华为&#xff0c;熟悉云行业解决方案。目前负责腾讯云中间件产…

计算机硬件知识考证题,计算机硬件知识题(答案)资料

信息技术过关考试题库(“计算机基础知识”部分)1、计算机的核心部件中央处理器的简称是________。CA 主机B 存储器C CPUD 输入设备2、世界上第一台电子计算机诞生于_____________。AA 1946年B 1950年C 1949年D 1941年3、下列全部是硬件的选项是______。AA 键盘、显示器B Window…

活动目录排错笔记

经过几年的网络管理工作&#xff0c;总结了一些关于AD的排错经验现在拿出来同大家分享&#xff0c;其中一些说明抄了微软的KB在这里说明一下&#xff0c;排错笔记有些地方可能写的不是很全&#xff0c;看不明白的地方大家可以GOOGLE一下&#xff0c;不对的地方也请大家提出 活…

CCF 201712-3 Crontab

本地AC&#xff0c;CCF编译失败。 通过对每条任务进行处理&#xff0c;将可能的月&#xff0c;日处理出来&#xff0c;并且比对对应星期是否符合要求。再对时分进行处理&#xff0c;判断整体时间在所给区域内。 思路借鉴自https://blog.csdn.net/gl486546/article/details/7905…

二十世纪最伟大的算法,你了解哪个?

导读&#xff1a;作者July总结了一篇关于计算方法的文章《 细数二十世纪最伟大的10大算法 》。一、1946 蒙特卡洛方法[1946: John von Neumann, Stan Ulam, and Nick Metropolis, all at the Los Alamos Scientific Laboratory, cook up the Metropolis algorithm, also known …

桌面计算机恢复出厂设置,windows7电脑怎么恢复出厂设置

我们使用电脑一段时间&#xff0c;由于各种问题&#xff0c;希望将电脑恢复出厂设置&#xff0c;那么windows7电脑怎么恢复出厂设置呢&#xff1f;下面跟着学习啦小编来一起了解下windows7电脑恢复出厂设置的方法吧。windows7电脑恢复出厂设置方法一按下开机键&#xff0c;启动…

关于Exchange管理控制台报“您的权限不足,无法此查看数据”的解决办法

今天朋友突然来电话&#xff0c;说自己的Exchange 2010 EMC突然报“you dont have sufficient permissions to view this data”&#xff08;您的权限不足&#xff0c;无法查看此数据&#xff09;&#xff0c;同时所有的cmdlet命令也不可以执行。询问我解决办法&#xff0c;出错…

C语言程序返回值为int的时候,不同值代表不同的意义

这个是我自己给自己的代码定的标准&#xff0c;方便自己阅读与编码。他人代码情况不可套用 1  执行成功 0  出现错误&#xff0c;不影响程序执行 -1  执行失败 -2  程序内部致命错误&#xff0c;退出程序转载于:https://www.cnblogs.com/kgtone/p/9570388.html

内存为什么还有管理?

本文作者&#xff1a;度白嵌入式任何程序运行起来都需要分配内存空间存放该进程的资源信息的&#xff0c;C程序也不例外。C程序中的变量、常量、函数、代码等等的信息所存放的区域都有所不同&#xff0c;不同的区域又有不同的特性。C语言学习者、尤其是在学习嵌入式的朋友&…

ajax html fileupload,fileUpload.html

文件上传测试说明: 最大上传量:100M&#xff0c;单个文件最大长度:100Menctype"multipart/form-data" method"post">Element.hide(progressBar);Event.observe(fileUploadForm,submit,startProgress,false);Event.observe(cancelUploadButton,click,ca…

HDOJ1106 排序

题目&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1106 代码: #include<stdio.h> #include<string.h> #include<stdlib.h> int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b; } int main(){ char s[1001]; int len,i,sum,cnt; …

TCP实现可靠传输

1. TCP 和 UDP的区别&#xff1a; TCP面向连接&#xff1b;UDP无连接TCP保证数据的可靠传输&#xff0c;数据传送无差错&#xff0c;不丢失&#xff0c;无重复&#xff0c;按序到达&#xff1b;UDP不保证可靠交付TCP连接一对一&#xff1b;UDP支持更广泛UDP实时性好&#xff0c…

旧手机别扔,手把手教你DIY一台Linux服务器

作者&#xff1a;Hannah Lee编译&#xff1a;弯月 欧阳姝黎来源&#xff1a;CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;本文将向你展示如何使用 UrBackup 和 Linux Deploy在一台 Android 旧手机上搭建一台备份服务器。旧手机的污染问题众所周知&#xff0c;我有一台旧…

学计算机买电脑显卡1605ti够吗,GTX1650和GTX1050Ti哪个好?GTX1050ti和GTX1650性能差距对比评测...

GTX1650显卡在2019年4月22日进行发售&#xff0c;不少用户认为GTX1650是智商检测卡&#xff0c;真的是吗&#xff1f;从命名上来看&#xff0c;GTX1650应该是GTX1050的升级产品&#xff0c;不过根据英伟达的说法&#xff0c;GTX1650相比GTX1050提升幅度达到了70%&#xff0c;但…

Cacti Plugin Architecture安装

1.下载Cacti PluginArchitecture ,http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz2.解压Cacti Plugin Architecture 3.安装cd cacti-plugin-archcp cacti-plugin-0.8.7b-PA-v2.1.diff /var/www/cactipatch -p1 -N < cacti-plugin-0.8.…

P1547 Out of Hay

传送门 练习 只是一个最小生成树的水题&#xff0c;拿来练练模板 AC代码&#xff1a; #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; #define maxn 10001 struct hh {int x,y,z; }t[maxn]; int …

研发转FAE,要想清楚

说个事情吧因为今天有个同学跟我说&#xff0c;自己想转去做FAE。他最近刚面试了一个FAE的岗位&#xff0c;那边感觉挺缺人了&#xff0c;感觉那边领导也比较喜欢自己&#xff0c;想让他快点去那边。然后我就跟他聊了下首先&#xff0c;过去做FAE的岗位就是一个大头兵&#xff…

Gamma的传说

Gamma校正对于图形和图像来说是个常提的概念&#xff0c;但对于gamma的缘由和使用方法&#xff0c;却存在着很多传说。本文将尽可能解析gamma校正来源&#xff0c;破解各种迷思。Gamma校正从何而来 有一种常见的说法&#xff0c;gamma来源于眼睛对光感受。我也曾经错误地采用了…