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

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

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

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()

        }

效果图:

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

楼上诸位回答的都对着呢,

它是一款电影字幕软件制作的文件。

所以使用TXT可以打开,使用暴风影音也是可以打开,

SubToSrt更可以了,因为就是SubToSrt制作的类似的字模文件。

就是你看E文片,下面的中文字模。。。

楼主分拿来。嘿嘿。

正确的设置

0 – 关闭对浏览器的xss防护

1 – 开启xss防护

1mode=block – 开启xss防护并通知浏览器阻止而不是过滤用户注入的脚本。

1report=http://site.com/report – 这个只有chrome和webkit内核的浏览器支持,这种模式告诉浏览器当发现疑似xss攻击的时候就将这部分数据post到指定地址。

通常不正确的设置

0mode=block– 记住当配置为0的时候,即使加了mode=block选项也是没有效果的。需要指出的是,chrome在发现这种错误的配置后还是会开启xss防护。

1 mode=block– 数字和选项之间必须是用分号分割,逗号和空格都是错误的。但是这种错误配置情况下,IE和chrome还是默认会清洗xss攻击,但是不会阻拦。

如何检测

如果过滤器检测或阻拦了一个反射性xss以后,IE会d出一个对话框。当设置为1时,chrome会隐藏对反射性xss的输出。如果是设置为 1mode=block ,那么chrome会直接将user-agent置为一个空值:, URL 这种形式。

参考文献

Post from Microsoft on the X-XSS-Protection Header

Chromium X-XSS-Protection Header Parsing Source

Discussion of report format in WebKit bugzilla

2. X-Content-Type-Options

目的

这个header主要用来防止在IE9、chrome和safari中的MIME类型混淆攻击。firefox目前对此还存在争议。通常浏览器可以通过嗅探内容本身的方法来决定它是什么类型,而不是看响应中的content-type值。通过设置 X-Content-Type-Options:如果content-type和期望的类型匹配,则不需要嗅探,只能从外部加载确定类型的资源。举个例子,如果加载了一个样式表,那么资源的MIME类型只能是text/css,对于IE中的脚本资源,以下的内容类型是有效的:

application/ecmascript

application/javascript

application/x-javascript

text/ecmascript

text/javascript

text/jscript

text/x-javascript

text/vbs

text/vbscript

对于chrome,则支持下面的MIME 类型:

text/javascript

text/ecmascript

application/javascript

application/ecmascript

application/x-javascript

text/javascript1.1

text/javascript1.2

text/javascript1.3

text/jscript

text/live script

正确的设置

nosniff – 这个是唯一正确的设置,必须这样。

通常不正确的设置

‘nosniff’ – 引号是不允许的

: nosniff – 冒号也是错误的

如何检测

在IE和chrome中打开开发者工具,在控制台中观察配置了nosniff和没有配置nosniff的输出有啥区别。

参考文献

Microsoft Post on Reducing MIME type security risks

Chromium Source for parsing nosniff from response

Chromium Source list of JS MIME types

MIME Sniffing Living Standard

3. X-Frame-Options

目的

这个header主要用来配置哪些网站可以通过frame来加载资源。它主要是用来防止UI redressing 补偿样式攻击。IE8和firefox 18以后的版本都开始支持ALLOW-FROM。chrome和safari都不支持ALLOW-FROM,但是WebKit已经在研究这个了。

正确的设置

DENY – 禁止所有的资源(本地或远程)试图通过frame来加载其他也支持X-Frame-Options 的资源。

SAMEORIGIN – 只允许遵守同源策略的资源(和站点同源)通过frame加载那些受保护的资源。

ALLOW-FROM http://www.example.com – 允许指定的资源(必须带上协议http或者https)通过frame来加载受保护的资源。这个配置只在IE和firefox下面有效。其他浏览器则默认允许任何源的资源(在X-Frame-Options没设置的情况下)。

通常不正确的设置

ALLOW FROM http://example.com – ALLOW和FROM 之间只能通过连字符来连接,空格是错误的。

ALLOW-FROM example.com – ALLOW-FROM选项后面必须跟上一个URI而且要有明确的协议(http或者https)

如何检测

可以通过访问test cases 来查看各种各样的选项 和浏览器对这些frame中的资源的响应。

参考文献

X-Frame-Options RFC

Combating ClickJacking With X-Frame-Options

4. Strict-Transport-Security

目的

Strict Transport Security (STS) 是用来配置浏览器和服务器之间安全的通信。它主要是用来防止中间人攻击,因为它强制所有的通信都走TLS。目前IE还不支持 STS头。需要注意的是,在普通的http请求中配置STS是没有作用的,因为攻击者很容易就能更改这些值。为了防止这样的现象发生,很多浏览器内置了一个配置了STS的站点list。

正确的设置

注意下面的值必须在https中才有效,如果是在http中配置会没有效果。

max-age=31536000 – 告诉浏览器将域名缓存到STS list里面,时间是一年。

max-age=31536000includeSubDomains – 告诉浏览器将域名缓存到STS list里面并且包含所有的子域名,时间是一年。

max-age=0 – 告诉浏览器移除在STS缓存里的域名,或者不保存此域名。

通常不正确的设置

直接将includeSubDomains设置为 https://www.example.com ,但是用户依然可以通过 http://example.com 来访问此站点。如果example.com 并没有跳转到 https://example.com 并设置 STS header,那么访问 http://www.example.com 就会直接被浏览器重定向到 https://www.example.com 。

max-age=60 – 这个只设置域名保存时间为60秒。这个时间太短了,可能并不能很好的保护用户,可以尝试先通过http来访问站点,这样可以缩短传输时间。

max-age=31536000 includeSubDomains – max-age 和 includeSubDomains 直接必须用分号分割。这种情况下,即使max-age的值设置的没有问题,chrome也不会将此站点保存到STS缓存中。

max-age=31536000, includeSubDomains – 同上面情况一样。

max-age=0 – 尽管这样在技术上是没有问题的,但是很多站点可能在处理起来会出差错,因为0可能意味着永远不过期。


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

原文地址: http://outofmemory.cn/tougao/8095842.html

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

发表评论

登录后才能评论

评论列表(0条)

保存