0

XML を使用するデータベース プログラムのコーディングを行っています。プログラムが起動し、指定されたパスで XML ファイルが見つからない場合は常に、次のように生成されます。

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

elementプログラムで要素に呼び出さstudentれた要素を追加したいGrade*(ユーザーは 10 から 12 までのグレードを入力するように求められ、それを Grade10 -> Grade12 に解析します)。私はこれを書きました:

    XDocument doc = XDocument.Load(prog.dbFile);
    doc.Element(toWriteGrade).Add(new XElement("student",
            new XElement("name", name),
            new XElement("age", age)));
    doc.Save(prog.dbFile);

これを実行すると、エラーが発生します。

タイプ 'System.NullReferenceException' の未処理の例外が StudentClone1.exe` で発生しました` 追加情報: オブジェクト参照がオブジェクトのインスタンスに設定されていません。

ここで何が問題なのですか?

4

1 に答える 1

6

これは、成績要素を正しく選択していないことを意味します:

doc.Element(toWriteGrade) // this returns null

したがって、成績は要素のGrades要素です。次の方法でクエリを実行する必要があります。

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

または(効率が悪い)ファイル内のすべての要素を調べることができます:

doc.Descendants(toWriteGrade) 
于 2013-11-04T13:21:46.197 に答える