在XDocument中向元素添加元素

时间:2013-11-04 13:17:15

标签: c# xml linq linq-to-xml

我一直在编写一个使用XML的数据库程序。每当程序引导并且未在指定的路径中找到XML文件时,它就会生成:

<!--  Studnet Database  -->
<schoolDB>
    <Grades>
        <Grade10/>
        <Grade11/>
        <Grade12/>
    </Grades>
    <Employees/>
</schoolDB>

我希望程序在element元素中添加名为student的{​​{1}}(系统会提示用户输入10到12之间的成绩,然后将其解析为10年级 - &gt;等级12)。我写了这个:

Grade*

当我运行它时,它给了我一个错误:

  

StudentClone1.exe`中出现未处理的“System.NullReferenceException”类型异常   附加信息:对象引用未设置为的实例   宾语。

这里有什么问题?

1 个答案:

答案 0 :(得分:6)

这意味着您没有正确选择成绩元素:

doc.Element(toWriteGrade) // this returns null

因此成绩是Grades元素的元素,你应该这样查询:

doc.Root.Element("Grades").Element(toWriteGrade)

或者(效率较低)你可以查看文件中的所有元素:

doc.Descendants(toWriteGrade) 
相关问题