在给出元素的名称和属性的名称的情况下,XmlReader类实现读取属性是很容易的。可是在不知道元素的名称和属性的名称的情况下用XmlReader类读取属性应该怎么实现呢?下面贴出一段代码,但是无法实现读取属性。麻烦各位知道的大神告诉小弟一下该怎么实现。
string path = @"e:\testfile\myMail.xml";
try
{
XmlReader xr = XmlReader.Create(path);
while (xr.Read())
{
if (xr.HasAttributes)
{
Console.WriteLine("<" + xr.Name + ">的属性:");
Console.WriteLine("{0}={1}", xr.Name, xr.Value);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
首先,XmlReader.AttributeCount可以知道属性的数量,
其实,XmlReader.MoveToAttribute(1) 可以移动到当前节点的某个属性,
在MoveToAttribute之后,xr.Name 就是属性名称, xr.Value就是属性值。
以下是修改后的代码:
if (xr.HasAttributes)
{
xr.MoveToAttribute(0); //按情况使用属性的index, 但不要超过XmlReader.AttributeCount
Console.WriteLine("<" + xr.Name + ">的属性:");
Console.WriteLine("{0}={1}", xr.Name, xr.Value);
}
@XiaoFaye: 谢谢了!