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)。
参考技术AXmlDocument 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中指定的节点值?的主要内容,如果未能解决你的问题,请参考以下文章