来自XML文件错误对象引用的C#读取元素未设置 [英] C# reading element from XML file error object reference not set

查看:74
本文介绍了来自XML文件错误对象引用的C#读取元素未设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用C#编写了一个程序来读取XML文件中的设置



I wrote a program in C# to read settings from an XML file

<?xml version="1.0" encoding="UTF-8"?>
-<settings><setting2>4</setting2><setting3> </setting3><setting4> </setting4><setting5> </setting5><setting6> </setting6><setting7> </setting7><setting8> </setting8><setting9> </setting9><setting10> </setting10><setting11> </setting11><setting12> </setting12><setting13> </setting13><setting14> </setting14><setting15> </setting15><setting16> </setting16><setting17> </setting17></settings>





现在我想在程序中加载它





Now i want to load it in program with

string xmlfilename = Path.Combine(Application.StartupPath, filename);
XDocument doc = new XDocument();
 XDocument.Load(xmlfilename);
textBox1.Text + doc.Root.Element("settings").Element("setting2").Value;





但是它将错误对象引用设置为未设置为对象的实例。



But it gives error object reference not set to an instance of an object.

推荐答案

从您的代码中,xml文件未加载到 doc 对象,其次由于根元素而导致错误。请尝试使用以下代码:

From your code, xml file was not loading to doc object and secondly you are getting error due to root element. Please try with below code:
Document doc = XDocument.Load(xmlfilename);
// This is one way to fetch XML data
string temp = textBox1.Text + doc.Root.Element("setting2").Value;
// or
// Another way to fetch XML data
string temp = textBox1.Text + doc.Element("settings").Element("setting2").Value;


1。尝试使用XmlDocument



2.一次一步(XmlElement root = doc.Root; root.Element(settings)等)直到得到返回null



3.而不是去.Element.Element.Element将XPath写入想要的元素(// settings / setting2)



其中一些应该解决问题,玩一下代码。



这是完整的例子:通过XMLDocument和XDocument解析XML文档 [ ^ ]
1. Try with XmlDocument

2. Go one step at a time (XmlElement root = doc.Root; root.Element(settings) etc.) until you get which returns null

3. Instead of going .Element.Element.Element write XPath to wanted element (//settings/setting2)

Some of this should resolve the problem, play a bit with the code.

Here is complete example: Parse XML Documents by XMLDocument and XDocument[^]


这篇关于来自XML文件错误对象引用的C#读取元素未设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆