XmlReader在未知元素的名称和属性的名称的情况下读取属性

经过昨天到今天的努力以及博问上好心人的帮助,终于解决了XmlReader在未知元素的名称和属性的名称的情况下读取属性的方法。

在没有解决前,我的代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Xml;
 6
 7 namespace ReadAttribute
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             string path = @"e:\testfile\myMail.xml";
14
15             #region 读取属性的第一种方法
16             //string date;
17             //try
18             //{
19             //    XmlReader xr = XmlReader.Create(path);
20             //    xr.ReadToFollowing("mail");
21             //    date = xr.GetAttribute("date");
22             //    Console.Write("信件的日期为:");
23             //    Console.WriteLine(date);
24             //}
25             //catch (Exception ex)
26             //{
27             //    Console.WriteLine(ex.Message);
28             //}
29             #endregion
30
31             #region 读取属性的第二种方法
32             try
33             {
34                 XmlReader xr = XmlReader.Create(path);
35                 while (xr.Read())
36                 {
37                     if (xr.HasAttributes)
38                     {
39                         //Console.WriteLine("<" + xr.Name + ">的属性:");
40                         //for (int i = 0; i < xr.AttributeCount; i++)
41                         //{
42                         //xr.MoveToAttribute(i);
43                         Console.WriteLine("<" + xr.Name + ">的属性:");
44                         Console.WriteLine("{0}={1}", xr.Name, xr.Value);
45                         //}
46                     }
47                 }
48             }
49             catch (Exception ex)
50             {
51                 Console.WriteLine(ex.Message);
52             }
53             #endregion
54             Console.ReadKey();
55         }
56     }
57 }

解决后,我的代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Xml;
 6
 7 namespace ReadAttribute
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             string path = @"e:\testfile\myMail.xml";
14
15             #region 读取属性的第一种方法
16             //string date;
17             //try
18             //{
19             //    XmlReader xr = XmlReader.Create(path);
20             //    xr.ReadToFollowing("mail");
21             //    date = xr.GetAttribute("date");
22             //    Console.Write("信件的日期为:");
23             //    Console.WriteLine(date);
24             //}
25             //catch (Exception ex)
26             //{
27             //    Console.WriteLine(ex.Message);
28             //}
29             #endregion
30
31             #region 读取属性的第二种方法
32             try
33             {
34                 XmlReader xr = XmlReader.Create(path);
35                 while (xr.Read())
36                 {
37                     if (xr.HasAttributes)
38                     {
39                         Console.WriteLine("<" + xr.Name + ">的属性:");
40                         for (int i = 0; i < xr.AttributeCount; i++)
41                         {
42                         xr.MoveToAttribute(i);
43                         //Console.WriteLine("<" + xr.Name + ">的属性:");
44                         Console.WriteLine("{0}={1}", xr.Name, xr.Value);
45                         }
46                     }
47                 }
48             }
49             catch (Exception ex)
50             {
51                 Console.WriteLine(ex.Message);
52             }
53             #endregion
54             Console.ReadKey();
55         }
56     }
57 }

解决后,上面的代码可以不用知道元素的名称和属性的名称的情况下读取XML文件中的所有属性名及其值。这种方法有点像迭代器遍历数组,只不过这里的元素变成了XML的节点和元素,而且这里可以把XML的属性也可以看成是XML的节点(”可以看成XML元素的子节点“),这样元素看成是节点,属性也看成是节点,都当做节点处理,也就是说这个遍历可以看成是遍历XML的节点。这样也就可以解释上面代码中的 xr.Name、xr.Value了,他们分别可以看成是XML的节点名和节点值(即属性名和属性值)。如此,这样的方法便不难理解了!

XmlReader在未知元素的名称和属性的名称的情况下读取属性

时间: 2024-08-07 23:51:21

XmlReader在未知元素的名称和属性的名称的情况下读取属性的相关文章

java下properties属性文件操作

package cn.stat.p1.file; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Pr

jQuery中的css属性对应名称

css中一些样式属性可以直接引用到jquery中,但是有些属性在jquery中与在css中有些区别,下面就是一些常用属性在css与jquery中的名称. jQuery中的css属性对应名称 css jQuery bottom bottom left left right right top top width width min-width minWidth max-width maxWidth height height min-height minHeight max-height maxH

Spring MVC-控制器(Controller)-属性方法名称解析器(Properties Method Name Resolver )示例(转载实践)

以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_propertiesmethodnameresolver.htm 说明:示例基于Spring MVC 4.1.6. 以下示例显示如何使用Spring Web MVC框架使用多操作控制器的属性方法名称解析方法.MultiActionController类有助于分别在单个控制器中将多个URL与其方法映射. package com.tutorialspoint; import java

c# 获取某个对象的[公有属性]的名称,类型,值

/// <summary> /// 获取某个对象的[公有属性]的名称,类型,值 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="obj"></param> /// <returns></returns> public static string GetPropertyValue<

类的继承和多态性-编写Java应用程序,定义Animal类,此类中有动物的属性:名称 name,腿的数量legs,统计动物的数量 count;方法:设置动物腿数量的方法 void setLegs(),获得腿数量的方法 getLegs(),设置动物名称的方法 setKind(),获得动物名称的方法 getKind(),获得动物数量的方法 getCount()。定义Fish类,是Animal类的子类,

编写Java应用程序,定义Animal类,此类中有动物的属性:名称 name,腿的数量legs,统计动物的数量 count;方法:设置动物腿数量的方法 void setLegs(),获得腿数量的方法 getLegs(),设置动物名称的方法 setKind(),获得动物名称的方法 getKind(),获得动物数量的方法 getCount().定义Fish类,是Animal类的子类,统计鱼的数量 count,获得鱼数量的方法 getCount().定义Tiger类,是Animal类的子类,统计老虎的

通过属性集名称获取属性集id

Mage::getModel('eav/entity_attribute_set')->load('属性集名称', 'attribute_set_name')->getAttributeSetId();

【转】C#通过Expression获取指定属性的名称

原文:http://www.cnblogs.com/powerwu/articles/3393582.html 大家所熟悉的是通过对象属性来访问该属性的值,或是由字符串通过反射来获取属性,并取值.今天我要说的是,通过对象的属性来获取该属性的名称,其意义在于拼接字符串时显示该名称,特别是自行拼接 SQL语句.下列代码是个简单测试类: public class TestClass { public int ID { get; set; } public string Name { get; set;

SSM-SpringMVC-10:SpringMVC中PropertiesMethodNameResolver属性方法名称解析器

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 上次的以继承MultiActionController可以实现一个处理器中多个处理方法,但是局限出来了,他们的url访问地址只能是与方法名称相同的,因为他默认的方法名称解析器是InternalPathMethodNameResolver 如果我们想为了程序的安全甚至更多考虑(从url简洁啊,同名啊,等等)所以引入了一个叫PropertiesMethodNameResolver属性方法名称解析器的这个东西 我

oracle中如何更改一个表的一个字段属性(名称,类型)

修改字段的属性,名称方法 --修改某一个字段的类型,当该字段不为null时 ALTER TABLE 表名 ADD  字段 NUMBER(11,0) ; --新创建一列,期待的字段类型 UPDATE 表名 SET 字段_bak= 字段;COMMIT; --复制旧字段值到新字段,dml的都需要提交 ALTER TABLE 表名DROP COLUMN 字段;--删除掉旧字段 ALTER TABLE 表名RENAME COLUMN 字段_bakTO 字段;--修改新字段的名称 alter table 表