1

我需要能够将 XML 数据添加到已创建的父节点并将其放置在特定的父节点下。

有没有人对最好的方法有任何建议?

我使用XMLWriter来创建原始 XML 文件。

 XmlDocument doc = new XmlDocument();
            doc.Load(filePath);
            for (int counter=0; counter<registeredEventCount; counter++)
            {

                try
                {
                    XmlNode checkEvent = doc.SelectSingleNode("Event/Event[@id='" + registeredArrayList[counter] + "']");
                    if (checkEvent != null)
                    {
                        try
                        {
                          XmlNode  checkDog = doc.SelectSingleNode("Event/Event[@id='" + registeredArrayList[counter] + "']/Dog[@id='" + ukcNumberArrayList[counter] + "']");

                            if (checkDog == null)
                            {



                                XmlElement newDogId = doc.CreateElement("Dog");
                                newDogId.SetAttribute("id", ukcNumberArrayList[counter].ToString());
                                XmlElement newDogName = doc.CreateElement("dogName");
                                newDogName.SetAttribute("id", dogNameArrayList[counter].ToString());
                                XmlElement newDogBreed = doc.CreateElement("breed");
                                newDogBreed.SetAttribute("id", breedArrayList[counter].ToString());
                                checkEvent.AppendChild(newDogId);
                                newDogId.AppendChild(newDogName);
                                newDogId.AppendChild(newDogBreed);
                                doc.Save(filePath);
                            }
                            else
                            {
                                MessageBox.Show("You have already registered this dog for this specific event");
                            }
                        }
4

1 回答 1

1

编辑:随着代码的更改,我的旧答案变得无效。无论如何,我在 Visual Studio 中测试了您的代码。有效。这是我的输入 xml 文件:

<Event>
  <Event id="0">

  </Event>
</Event>

和输出:

<Event>
  <Event id="0">
    <Dog id="1">
      <dogName id="2" />
      <breed id="3" />
    </Dog>
  </Event>
</Event>

我的猜测是您的 XML 文件中有问题,并且 ifs 中的代码没有执行。我认为 XmlSerializer 对于简单的 XML 创建/更新来说更好,更不容易出错。

于 2012-08-07T19:06:34.663 回答