C#如何读取xml文件内容并用listview控件显示

xml如下所示:<?xmlversion="1.0"encoding="GB2312"standalone="yes"?><docs><obj><Name1>李华</Na... xml如下所示:<?xml version="1.0" encoding="GB2312" standalone="yes" ?>
<docs>
<obj>
<Name1>李华</Name1>
<Sex1>男</Sex1>
<Number1>2011013</Number1>
<Class1>35111</Class1>
<ID1>0000</ID1>
</obj>
</docs>
展开
 我来答
律连忆璃寸1p671
2019-07-23
知道答主
回答量:12
采纳率:100%
帮助的人:7863
展开全部
可读取多行内容,仅供参考
1.xml文件内容:
<?xml version="1.0" encoding="utf-8"?>
<filesauto>
  <file>
    <type>文件</type>
    <state>√</state>
    <path>C:\Users\mirror\Desktop\备份资料.txt</path>
    <text>未备份</text>
  </file>
  <file>
    <type>文件</type>
    <state>√</state>
    <path>C:\Users\mirror\Desktop\待办.txt</path>
    <text>未备份</text>
  </file>
  <folder>
    <type>文件夹</type>
    <state>√</state>
    <path>E:\Videos</path>
    <text>未备份</text>
  </folder>
  <folder>
    <type>文件夹</type>
    <state>√</state>
    <path>E:\Pictures</path>
    <text>未备份</text>
  </folder>
</filesauto>

2.新建的类
public class FilesAuto
            {
            public FilesAuto()
            { }
            private string fileType;
            public string FileType
            {
                get { return fileType; }
                set { fileType = value; }
            }
            private string fileState;
            public string FileState
            {
                get { return fileState; }
                set { fileState = value; }
            }
            private string filePath;
            public string FilePath
            {
                get { return filePath; }
                set { filePath = value; }
            }
            private string fileText;
            public string FileText
            {
                get { return fileText; }
                set { fileText = value; }
            }
        }
3.读取xml数据到ListView控件中:
private void ShowXML() //显示xml数据
        {
            string path = "filesAuto.xml"; //xml的文件位置
            XmlDocument xmlDoc = new XmlDocument();
            XmlReaderSettings settings = new XmlReaderSettings();
            settings.IgnoreComments = true; //忽略xml文档中的注释
            XmlReader reader = XmlReader.Create(path, settings);
            xmlDoc.Load(reader); //读取xml数据
            XmlNode xn = xmlDoc.SelectSingleNode("filesauto");
            XmlNodeList xnl = xn.ChildNodes;
            List<FilesAuto> stsList = new List<FilesAuto>();
            //循环遍历获取xml文档中的全部数据
            foreach (XmlNode Xnl in xnl)
            {
                FilesAuto filesAuto = new FilesAuto();
                XmlElement xe1 = (XmlElement)Xnl;
                XmlNodeList xnl0 = xe1.ChildNodes;
                filesAuto.FileType = xnl0.Item(0).InnerText;
                filesAuto.FileState = xnl0.Item(1).InnerText;
                filesAuto.FilePath = xnl0.Item(2).InnerText;
                filesAuto.FileText = xnl0.Item(3).InnerText;
                ListViewItem list = listView1.Items.Add(filesAuto.FileType);
                list.SubItems.Add(filesAuto.FileState);
                list.SubItems.Add(filesAuto.FilePath);
                list.SubItems.Add(filesAuto.FileText);
            }
            reader.Close(); //关闭读取流
        }
使用方法:
private void Button6_Click(object sender, EventArgs e)
        {
            ShowXML();
        }

效果图:

若有不足之处恳请大家指出改正

匿名用户
2013-07-10
展开全部
功能实现如下: 你上面的xml文档将它命名为"txml",拷到bin目录下的debug里面:
1:先建一个XMLr类,用于解悉xml,并定义变量存储解悉到的Name1,Sex1,Number1,Class1,ID1的值
代码如下:
public class XMLr
{
string name;
public string Name
{
get { return name; }
set { name = value; }
}
string sex;
public string Sex
{
get { return sex; }
set { sex = value; }
}
string Number;
public string Number1
{
get { return Number; }
set { Number = value; }
}
string clas;
public string Clas
{
get { return clas; }
set { clas = value; }
}
string id;
public string Id
{
get { return id; }
set { id = value; }
}
//<Sex1>男</Sex1>
//<Number1>2011013</Number1>
//<Class1>35111</Class1>
//<ID1>0000</ID1>

public void ReadXML()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("txml.xml");
XmlNode docNode = xmlDoc.DocumentElement;
XmlNode objNode = docNode.FirstChild;
foreach (XmlNode allNode in objNode.ChildNodes )
{
if (allNode.Name == "Name1")
{
name = allNode.InnerText;

}
if (allNode.Name == "Sex1")
{
sex = allNode.InnerText;
}
if (allNode.Name == "Number1")
{
Number = allNode.InnerText;

}
if (allNode.Name == "Class1")
{
clas = allNode.InnerText;

}
if (allNode.Name == "ID1")
{
id = allNode.InnerText;

}
}
}
}
2: 在窗口中添加一个listView控件,在窗口加载的事件中把解悉到的XML增加到listView中,代码如下:

private void Form1_Load(object sender, EventArgs e)
{
listView1.View = View.Details;
listView1.Columns.Add("姓名");
listView1.Columns.Add("性别");
listView1.Columns.Add("学号");
listView1.Columns.Add("班级");
listView1.Columns.Add("ID");
XMLr x = new XMLr();
x.ReadXML();
ListViewItem list= listView1.Items.Add(x.Name );
list.SubItems .Add (x.Sex );
list.SubItems.Add(x.Number1 );
list.SubItems.Add(x.Clas );
list.SubItems.Add(x.Id );

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式