private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
string filename = null;
if (ofd.ShowDialog() == DialogResult.OK)
{
filename = ofd.FileName;
}
using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read))
{
using (StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding("GB2312")))
{
XmlTextReader xl = new XmlTextReader(sr);
while (xl.Read())
{
switch (xl.NodeType)
{
case XmlNodeType.Attribute:
break;
case XmlNodeType.CDATA:
break;
case XmlNodeType.Comment:
break;
case XmlNodeType.Document:
break;
case XmlNodeType.DocumentFragment:
break;
case XmlNodeType.DocumentType:
break;
case XmlNodeType.Element:
{
this.rtbText.Text += string.Format("开始元素{0}/n", xl.Name);
//是否有属性
if (xl.HasAttributes)
{
//读属性
for (int i = 0; i < xl.AttributeCount; i++)
{
xl.MoveToAttribute(i);
this.rtbText.Text += string.Format("属性{0} = '{1}'/n", xl.Name, xl.Value);
}
}
break;
}
case XmlNodeType.EndElement:
{
this.rtbText.Text += string.Format("结束元素{0}/n", xl.Name);
break;
}
case XmlNodeType.EndEntity:
break;
case XmlNodeType.Entity:
break;
case XmlNodeType.EntityReference:
break;
case XmlNodeType.None:
break;
case XmlNodeType.Notation:
break;
case XmlNodeType.ProcessingInstruction:
break;
case XmlNodeType.SignificantWhitespace:
break;
case XmlNodeType.Text:
{
this.rtbText.Text += string.Format("内容{0}/n", xl.Value);
break;
}
case XmlNodeType.Whitespace:
break;
case XmlNodeType.XmlDeclaration:
break;
default:
break;
}
}
xl.Close();
}
}
}