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

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

可读取多行内容,仅供参考

1xml文件内容:

<xml version="10" 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 = "filesAutoxml"; //xml的文件位置

            XmlDocument xmlDoc = new XmlDocument();

            XmlReaderSettings settings = new XmlReaderSettings();

            settingsIgnoreComments = true; //忽略xml文档中的注释

            XmlReader reader = XmlReaderCreate(path, settings);

            xmlDocLoad(reader); //读取xml数据

            XmlNode xn = xmlDocSelectSingleNode("filesauto");

            XmlNodeList xnl = xnChildNodes;

            List<FilesAuto> stsList = new List<FilesAuto>();

            //循环遍历获取xml文档中的全部数据

            foreach (XmlNode Xnl in xnl)

            {

                FilesAuto filesAuto = new FilesAuto();

                XmlElement xe1 = (XmlElement)Xnl;

                XmlNodeList xnl0 = xe1ChildNodes;

                filesAutoFileType = xnl0Item(0)InnerText;

                filesAutoFileState = xnl0Item(1)InnerText;

                filesAutoFilePath = xnl0Item(2)InnerText;

                filesAutoFileText = xnl0Item(3)InnerText;

                ListViewItem list = listView1ItemsAdd(filesAutoFileType);

                listSubItemsAdd(filesAutoFileState);

                listSubItemsAdd(filesAutoFilePath);

                listSubItemsAdd(filesAutoFileText);

            }

            readerClose(); //关闭读取流

        }

使用方法:

private void Button6_Click(object sender, EventArgs e)

        {

            ShowXML();

        }

效果图:

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

SystemDataDataSet ds = new SystemDataDataSet();

dsReadXml(ServerMapPath("~/sfdsxml"));

using SystemXml;

XmlDocument xmlDoc = new XmlDocument();

xmlDocLoad(ServerMapPath("这里是你的XML的地址"));

XmlNode cNodes = xmlDocSelectSingleNode("columns");

for (int i = 0; i < cNodesChildNodesCount; i++)

{

XmlNode c = cNodesChildNodes[i];

cAttributes["hidden"]Value; //这里就取到hidden的值

cAttributes["show"]Value; // 这里就取到show的值

}

field="name" 这个也是节点属性啊。

大哥,代码很详细了吧,给分,给分!!!!!!!

应该可以设置id,根据id获取值

不好意思啦!借用zhangmiger代码一下。

XmlDocument doc = new XmlDocument();

docLoad("//XMLFile1xml");

XmlNodeList nodes = docSelectNodes("/Dimap_Document/IMAGING_DATE/vertex");

foreach (XmlNode node in nodes)

{

if(nodeAttributes["id"]value=="v2"){

ConsoleWriteLine(nodeInnerText);

}

}

ConsoleRead();

XMLFile1xml文件的内容:

<xml version="10" encoding="utf-8" >

<Dimap_Document>

<IMAGING_DATE>

<vertex id="v1">

a

</vertex>

<vertex id="v2">

b

</vertex>

<vertex id="v3">

c

</vertex>

</IMAGING_DATE>

</Dimap_Document>

原因:节点概念模糊。

解释:XML第一行声明也为节点,如果下行为注释也是节点,再下行一般就是StarElement(开始元素)。同时readReadStartElement(); 前面必须有一次read()先读一次,以便确定当前指针指向哪个结点(元素)。

特别提醒:声明、注释、标签、属性、文本等都是结点。

写个循环嵌套可以把所有的value都取出来

不知道XmlNodeList xnl= xmlDocSelectNodes("struct/value");可不可以直接都取出来,没有试过。

以上就是关于C#如何读取xml文件内容并用listview控件显示全部的内容,包括:C#如何读取xml文件内容并用listview控件显示、C#怎样获取指定xml节点的路径、C#如何读取xml文件里面节点里面的属性信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9519432.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存