来自XML文件错误对象引用的C#读取元素未设置 [英] C# reading element from XML file error object reference not set
本文介绍了来自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屋!
查看全文