[英]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.