Tips:F1打开MSDN查看XML类
1.#region利用按钮打开文件
private void button2_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
if (fileName != null)
{
doc.Load(fileName);
XmlMessage.Text = FormatXmlText(doc.DocumentElement as XmlNode, “”, “”);
}
}
#endregion
2.#region利用遍历xml节点的方式读xml文件
//XmlNode类 indent表示缩进,此程序功能主要是复述出xml文件的节点。示例图如下
private string FormatXmlText(XmlNode node, string text, string indent)
{
if (node is XmlText)
{
text += node.Value;
return text;
}
if (string.IsNullOrEmpty(indent))
{
indent = “ “;
}
else
{
text += “\r\n” + indent;
}
if (node is XmlComment)
{
text += node.OuterXml;
return text;
}
text += node.Name;
if (node.Attributes.Count > 0)
{
AddAttributes(node, ref text);
}
if (node.HasChildNodes)
{
text += “:”;
foreach (XmlNode child in node.ChildNodes)
{
text = FormatXmlText(child, text, indent + “ “);
}
if (node.ChildNodes.Count == 1 && (node.FirstChild is XmlText || node.FirstChild is XmlComment))
text += “.”;
else
text += “\r\n” + indent;
}
return text;
}
#endregion
<图>1.xml原文件:
2.读取xml的控件(textbox)
3.与2对比,第一次读xml用的面向对象的编程方法即按树结构自上而下读取节点信息
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument();
doc.Load(“C:\Users\18333\Desktop\file\readXmlTest\BIN_RELATIVE_SECTION___01.xml”);
XmlNode node = doc.SelectSingleNode(“station”);
XmlNodeList nodeList = node.ChildNodes;
foreach (XmlNode xn in nodeList)
{
XmlElement xmle = (XmlElement)xn;
string Name = xmle.Name;
string Value = xmle.InnerText;
if (Name != “track”)
{ Console.WriteLine(Name + “=” + Value); }
if(Name == “track”)
{
Console.WriteLine(“track:”);
XmlNodeList trackNodes = xmle.ChildNodes;
foreach (XmlNode tracknode in trackNodes)
{
string strname = ((XmlElement)tracknode).Name;
string strValue = ((XmlElement)tracknode).InnerText;
Console.WriteLine(strname + “=” + strValue);
}
}
}
}
4.#region遍历每个Textbox并赋值(日前做的项目是三个文本框,遍历xml中三个字节点的经纬度信息按顺序读取到textbox中)
private List
private void FindControls(Control container)
{
foreach (Control c in container.Controls)
{
if(c is TextBox)
{
c.Text =;/////////////////////
}
}
}
PS:使用时FindControls(this.Controls)或者FindControls(pane1);(我将三个TextBox置于一个panel内)
#endregion
11.28改进
想要读写txt文件
首先更改dialog.Filter = “文件(.xml,.txt)|.xml;.txt”;
其次在读文件的时候判断如果fileName中(因为其是字符串)包含xml则用读xml的方法读file
如果有txt则以读txt的方法读file。
判断字符串中是否包含字符串一般使用contains
如
if(fileName.contains(“xml”))
{
FormatTxtText(dialog.FileName);
}