C#如何读取XML中指定的节点值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#如何读取XML中指定的节点值?相关的知识,希望对你有一定的参考价值。

C#操作XML 有以下几种方式:

    使用XmlDocument相关类库和方法操作xml。

    使用XDocument相关类库和方法操作xml。

    使用XmlReader和XmlWriter相关类库和方法操作xml。

    获得指定节点的值也需要分为属性和元素。

获得指定节点的值也需要分为属性和元素:

使用XmlDocumentXmlDocument doc = new XmlDocument,读取属性+元素foreach (XmlNode item in nodeList)。

参考技术A

XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load(xmlPath)XmlNode xmlNode1=xmlDoc.SelectSingleNodeXmlNodexmlNode2=xmlDoc.SelectSingleNode("/Employees/NO1/City/State");string ads = xmlNode1.InnerText; string ste = xmlNode2.InnerText。

在 c# / ReadAsync 中读取二进制数据而不是读取计数中指定的所有内容

【中文标题】在 c# / ReadAsync 中读取二进制数据而不是读取计数中指定的所有内容【英文标题】:Reading binary data in c# / ReadAsync not reading everything specified in the count 【发布时间】:2020-10-01 11:12:26 【问题描述】:

我读了这篇博文https://jonskeet.uk/csharp/readbinary.html,

FileStream 可能只是将文件的前 10 个字节读入缓冲区。 Read 方法只保证在某些数据可用(或到达流的末尾)之前阻塞

您知道是否需要对 ReadAsync 进行同样的考虑。

您还知道在哪些情况下会遇到这种情况,Read / ReadAsync 没有读取计数中指定的所有内容?

【问题讨论】:

【参考方案1】:

您还知道在哪些情况下会遇到这种情况,Read / ReadAsync 没有读取计数中指定的所有内容?

当可用数据少于指定时。


最简单的就是你打到文件结尾的地方。

正如MSDN 所说:

如果当前可用的字节数小于请求的数量,则结果值可以小于请求的字节数,或者如果已到达流的末尾,则结果值可以为 0(零)。

也很常见;从 TCP/IP 缓冲区读取时,尽管通常不会是 FileStream。还有各种其他Stream 继承类型,它们共享相同的方法。见:System.IO.Stream

【讨论】:

我想知道的是,如果程序在本地读取文件是否会遇到这种情况,例如在本地获取一批 150 mb 文件的 8192 字节?可以部分读取批次吗? 是的,它不一定是可能的,但它是可能的,因为它取决于您对 FileStream 和其他组件的实现。典型的情况可能是硬件故障或读取指令超时。 @MariangeMarcano:所以,在正常情况下,如果你读到最后,你会得到所有的字节。

以上是关于C#如何读取XML中指定的节点值?的主要内容,如果未能解决你的问题,请参考以下文章

C# XML 如何直接根据属性值 读取 对应的值 怎么写???

无法使用 c# 从 xml 读取值/节点

从 C# 中的大 xml 读取子节点值

c# 读取xml 某个节点值

C#如何读取xml文件里面节点里面的属性信息?

在 c# / ReadAsync 中读取二进制数据而不是读取计数中指定的所有内容