繁体   English   中英

将XML数据添加到特定的父节点

[英]Adding XML data to a specific parent node

我需要能够将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");
                            }
                        }

编辑:随着代码的更改,我的旧答案变得无效。 无论如何,我在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创建/更新而言,错误较少​​的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM