C#读取xml 文件 报错:未将对象引用设置到对象的实例

笔记——Oracle19c Oracle阅读笔记 阅读详情

 写一个小测试,通过界面文本输入框的值修改xml文件的节点值

 因为刚接触xml。所以一开始就碰到了很多问题。所以在此记录下来。

 

 1。在加载xml文档的时候就遇到一个问题,关于xml文件的路径问题。

 

    方法:string str=Server.MaPath(".");获取web物理路径目录

             string path=str+//**.xml;

  这时候路径就对了。。

    XmlDocument xmlDoc=new XmlDocument();

    xmlDoc.Load(path);

 

  看到了吧,上面我有用红色标注了Load(),为什么我会标记呢?因为他就是我第二个问题所在。

2。提示错误:

根级别上的数据无效。 行 1,位置 1。

 看到这个错误我感觉很纳闷,也觉得这路径没有错误啊 。。网上搜资料才知道。XmlDocument xmlDOc对象有两个加载方法。第一个是Load()还有一个是LoadXml().而我正好用的是LoadXml()。。这两个方法是有不同的。。Load() 是加载xml文件。而LoadXml()则是加载Xml文档,是加载xml字符串。。。现在应该就清楚了吧。。。下次再也不会犯这样的低级错误了。呵!

 

3。第三个问题才是重点。错误内容是:未将对象引用设置到对象的实例

 

 同样挺郁闷的。读取xml文件怎么也报这样的错误了啊。。没理由啊。。爬山涉水终于找到了答案。

参考:http://hi.baidu.com/kylinjack/blog/item/9cdb38faf559552a4f4aea1e.html

原来是定义xml文件的时候,加入了xmlns表示命名空间,同样呢,XPath也需要加入命名空间

请看代码:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
  <report>

 <dataSource>

....

</dataSource>

<ReportItems>

.......

</ReportItems>

</report>

 

如果我们的xml文件时上面这样的格式的话。那么查找xml文件中的xml节点则只需要这样写就可以 了。

xmlDoc.Load(path);

string xpath=@"report/ReportItems";

XmlNodeList xmlList=xmlDoc.SelectSingleNode(xpath).ChildNodes;

这样就获取了ReportItems下面的节点,然后进行匹配操作就可以了。

 可问题是现在的xml文件不是这样,而是加入了xmlns命名空间

如:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
  <DataSources>

....

</dataSource>

<ReportItems>

.......

</ReportItems>

</Report >

所以现在查找节点就需要这样来写了:

xmlDoc.Load(path);

  XmlNamespaceManager xnm = new XmlNamespaceManager(xmldoc.NameTable);
            xnm.AddNamespace("mxh", "http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
            string xPath = @"/mxh:Report/mxh:ReportItems";
            XmlNodeList xmllist = xmldoc.SelectSingleNode(xPath, xnm).ChildNodes;

好了,这样就不会报错了,下面就可以继续操作了。循环xmllist,然后匹配节点。。

【TIDB】TiDB认证考试PTCA 练习题 题库 TiDB认证考试PTCA 练习题 题库 阅读详情

相关推荐

CANOCO5.0实现冗余分析(RDA)最详细步骤

在地理及生态领域会常使用RDA分析,RDA的实现路径也有很多,今天介绍一下CANOCO软件的实现方法。1.不同样点和环境因子之间夹角是锐角 是正相关,是钝角是负相关。2.夹角越大 说明相关性较小,夹角越小,相关性越大。得有不同的物种或者样点数值,再加上环境因子数据。3.箭头越长 相关性越大。时间调整到2010年。

Along6的博客 1万+

c#中XML解析文件出错解决方法

在解析xml时,经常因为文件中含特殊字符而解析失败。原因有两个:一是内容中含有XML预定义好的实体,二是内容中含有低位非打印字符 1.内容中含有xml预定好的实体,如“"标记结束,是CDATA内部内容被解析器忽略。具体说明参考《XML CDATA是什么?》。 2.内容中含有低位非打印字符,解析时会报错:""(十六进制值 0x1D)是无效的字符.加载或保存XML时引发的异常.System.A

scq503的专栏 2802

ISO 26262中的失效率计算:Mission profile的使用

Mission profile:任务剖面,即产品在完成规定任务这段时间内所经历的时间和环境的时序描述;集成电路在工作时环境温度是在不停变化的,同时也存在运行状态和非运行状态;为此标准提出了根据任务剖面(Mission profile)以及集成电路的实际结温来评估热幅度变化、循环温度幅值等因素的影响;汽车电子元器件相关的Mission profile参考IEC TR 62380:Table 11。

weixin_47071127的博客 4808

未将对象引用设置到对象的实例

<br />解决办法<br />出现“未将对象引用设置到对象的实例” 错误,一般是下面的原因:<br />1、ViewState 对象为Null。<br />2、DateSet 为空。<br />3、sql语句或Datebase的原因导致DataReader空。<br />4、声明字符串变量时未赋空值就应用变量。<br />5、未用new初始化对象。<br />6、Session对象为空。<br />7、对控件赋文本值时,值不存在<br />8、使用Request.QueryString()时,所获取的对象

喜欢在细雨中散步 6471

CSIT883系统分析与项目管理——Lecture3重点概念

🎈本节课,介绍了项目集成管理当中,关于NPV这个概念相关的内容,以及介绍什么是系统需求,什么时候需要开始系统需求,如何进行调查系统需求等等相关的题目,这里供大家复习参考吧!还有还有最关键的是NPV的计算,我单独写一篇博文,需要的同学快去学习吧!

AI手套的博客 1090

VECTOR硬件VN1600系列对比:VN1610、VN1611、VN1630A、VN1640A、VN1630log、VN1670

VN16系列说不清道不明的区别和关系

AmorRun的博客 2万+

WPF中报错:“未将对象引用设置到对象的实例。”

在WPF中,我们经常需要使用到各种控件的属性,不管是在后端还是前端,都避免不了对控件的操作,但是大家在使用的过程中我们一定要注意一个很重要的细节!!!

Monkey_King_GL的博客 3813

Redhawk: 为什么STA CHECK中switch cell覆盖率为0(STA file中switch control pin没有timing window)?

如题,做dynamic analysis时,不需要switch cell的timing window信息,但是做low power analysis需要做上电时switch cell的timing window就是必须的了,本文对switch cell control pin没有timing window (STA CHECK覆盖率为零)的这种现象做分析。

m0_61544122的博客 1197

vs2022 版本17.6.2 使用 EF6生成实体数据模型时出现报错:正在运行转换: System.NullReferenceException: 未将对象引用设置到对象的实例

这是visual studio 2022 17.6.2的一个bug,就是在edmx中添加新表时,无法生成新表对应的实体类。正在运行转换: System.NullReferenceException: 未将对象引用设置到对象的实例。解决方案就是回退版本,或者手工修改生成的模板文件,也可以等下个正式版本。然后就可以成功的使用vs2022+EF6生成指定数据库的模型了。vs2022没有什么回退的方案,只能自己修改模板文件了。保存,退出重进要生成模型的项目。工具→获取工具和功能→安装位置。

WSTS666的博客 2506

TensorRT量化校准数据集选择

在TensorRT中进行INT8量化时,校准数据集的选择至关重要,直接影响量化后模型的精度和推理性能。这是一个典型的问题。

浩瀚之水的专栏 497

基于Simulink环境,提供一个关于如何对EMI抑制的DC-DC变换器进行仿真建模的示例

EMI定义:电磁干扰是指任何能中断、阻碍、降低或限制电气设备有效性能的电磁能量。重要性合规性:确保产品符合国际和地方的EMC标准。可靠性:减少因外部或内部EMI导致的系统故障风险。挑战滤波设计:合理设计输入输出滤波器以抑制传导EMI。布局与接地:良好的PCB设计对于减少辐射EMI至关重要。屏蔽:使用金属屏蔽来保护敏感电路不受外界干扰。首先明确要模拟的任务内容。设计一个能够在高频操作下有效抑制EMI的DC-DC变换器。根据工作频率和谐振元件值确定合适的滤波器参数。

xiaoheshang_123的博客 145

C#常见错误—未将对象引用设置到对象的实例

C#常见错误—“未将对象引用设置到对象的实例”的产生原因和解决方案。

weixin_62958520的博客 4752

用 CL_ABAP_PARALLEL 把批量处理跑进并行对话进程:资源配额、超时治理与可复制的落地模板

文章摘要: CL_ABAP_PARALLEL是SAP推荐的并行处理工具,适用于时间窗口受限的批量任务处理。它基于aRFC/pRFC机制,通过对话进程实现并行,能将小时级任务压缩到分钟级。使用时需注意版本兼容性(可能需要Note 2791374)、资源限制(会话数、进程数)和任务切片策略。提供两种实现方式:继承式(重定义do方法)和接口式(实现IF_ABAP_PARALLEL)。关键参数包括并发控制(p_percentage)、超时设置(p_timeout)和调试开关(p_debug)。最佳实践建议按业务维度

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 240

System.NullReferenceException HResult=0x80004003 Message=未将对象引用设置到对象的实例。

System.NullReferenceException HResult=0x80004003 Message=未将对象引用设置到对象的实例。笔者在用C # 读取Xml文件时报错未将对象引用设置到对象的实例全文如下: HResult=0x80004003 Message=未将对象引用设置到对象的实例。) 笔者在用C # 读取Xml文件时报错未将对象引用设置到对象的实例全文如下: System.NullReferenceException HResult=0x80004003 Message=未将对

weixin_43727933的博客 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C#显示(读取)XML元素内容的简单例子

接上一篇显示所有结点的内容1 原xml文件 bookstore.xml       who am i     who    999       2 program.cs using System;using System.Xml;namespace ReadXml{    class Class1    {        static void Main(str

耐维吉普 5992

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C# 读取保存xml文件

直接读取xml文件中的内容 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(result); XmlNode root = xmlDoc.SelectSingleNode("//response"); if (root != nul...

weixin_30342209的博客 201

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

php写xml文件报错,PHP读取XML文件

xml主键被json取代,大概了解一下就OK了简要:加载xml文件:$xml = simplexml_load_file('sa.xml');//$xml是一个对象读取节点:echo $xml->name;读取多重节点:echo $xml->school->highschool->name;sa.xml文件:简庆旺福建省漳州市南靖县梅林镇官洋村170959213203636...

weixin_33331639的博客 203

C#解析XML 遇到的问题 注释 引起读取错误 (记录)

&lt; ?xml version="1.0" encoding="utf-8"?&gt; &lt;!--生成士兵表 type 表示兵种类型 soldierType表示兵种层级 消耗品以及图集--&gt; &lt;Root&gt; &lt;!--枪兵--&gt; &lt;ProduceSoldier ID="10000" id="10001&q

破茧 1556

XML文件学习

可扩展标记语言与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,可扩展标记语言仅仅是存储数据。MessageBox.Show("姓名:" + name + ",学号:" + NO + NA+":"+G);//4.先创建根节点元素,每个xml文件有且只有一个根节点,如果没有创建根节点会报错。//保存XML文件:①此时使用的是相对路径,在debug文件夹下,②后缀名是.xml。

weixin_42561645的博客 1182

C# Json文件读取

文章目录前言Json语法格式JsonData 转化为Json格式字符串 前言 关于用litjson来解析json格式的文件,我看过两个教程,第一个并没有讲json的语法原理,只讲了怎么使用。第二个很清晰明了说了数组和对象这个概念 但凡是有数组的地方,都可以用list来进行替换 JSON跟XML一样是一种是数据格式,都是文本文件 Json语法格式 JSON 使用 JavaScript 语法来描...

超胆孤侠 2万+

C#读取XML文件的方法

先写一个xml文件: 1 <?xml version="1.0" encoding="utf-8" ?> 2 <bookste> 3 <!--记录书本的信息--> 4 <book Type="必修课" ISBN="7-111-19149-2"> 5 <title>编译原理</ti...

weixin_30871293的博客 96

c# 进行xml文件读写操作

c#读写xml的例子网上很多,也很简单,但在实际的运用过程中却发现有许多的困难。之前操作的xml文件一般都是自己定义的。通常的写法就是: XmlDocument doc = new XmlDocument(); string path = "config.xml"; doc.Load(path); //xml读取操作 ...

haikou9410的博客 1万+

[websevices查询结果时报错] 读取 XML 数据时,超出最大字符串内容长度配额 (8192)XmlDictionaryReaderQuotas 对象的 MaxStringContentLe

引用webservices后在app.config生成了配置,但没有MaxStringContentLength 属性,默认成了8192,当查询XML字符较长时,就会报此错,综合了网上的一些信息,要对自己环境的app.config中内容进行修改,不能直接复制网上代码,因为webservices名称不同。通过更改在创建 XML 读取器时所使用的 XmlDictionaryReaderQuotas 对象的 MaxStringContentLength 属性,可增加此配额。

TCMY的专栏 1231

一.XML文件

一.XML文件 简介:XML可拓展标记语言,设计被用来传输和保存数据 结构:是一个树形结构,必须有一个根节点 XML文件与HTMl的区别 1.XML 和 HTML 为不同的目的而设计,它们不是同一种东西。 2.XML 被设计为传输和存储数据,其主要的作用是数据的内容。 3.HTML 被设计用来显示数据,其主要的作用是数据的外观。 4.HTML 旨在显示信息,而 XML 旨在传输信息。 5.XML是...

A135LMZ的博客 242

C#.net读写XML文件

本文将会涉及3个方面的内容:        1.存取XML文件        2.XML文档对象模型        3.XML和DataSet        这里我们先介绍操作XML文件的两个对象:XmlTextReader和XmlTextWriter        打开和读取Xml文件使用到的对象就是XmlTextReader对象。下面的例子打开了与程序在同一路径下的一个例子文件sample.x

johncools的博客 4010

C#来创建和读取XML文档

扩展标记语言XML(eXtensible Markup Language),是由W3C组织制定的。做为用于替代HTML语言的一种新型的标记语言,XML内部有着很多基本标准,XML就是通过与这些相关标准地结合,应用于科学计算、电子出版、多媒体制作和电子商务的。C#作为一种新型的程序语言,是.Net框架的一个重要组成部分,他和XML的关系颇深。本文就从一个方面来探讨一下这二者的关系。即:看用C#如何来...

weixin_30751947的博客 60
上一篇: oracle配置监听的问题!!
下一篇: 4种读取xml文件方法
ff_1211
博客等级 码龄18年 49粉丝 11原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值