Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我无法在正确的元素中向XML文件添加节点_C#_Xml_Unity3d_Xmldocument - Fatal编程技术网

C# 我无法在正确的元素中向XML文件添加节点

C# 我无法在正确的元素中向XML文件添加节点,c#,xml,unity3d,xmldocument,C#,Xml,Unity3d,Xmldocument,当我保存一个新的问题元素时,我需要它位于问题元素内,而问题元素又位于问题集合内,但是我保存新元素的方式在问题之外,以后不会阅读。 XML是如何获得的:(ABA是新元素) 错误:ArgumentException:引用节点不是此节点的子节点。假设您没有在上面的代码中输入错误,我想我知道发生了什么 XML结构将QuestionCollection作为元素,而SelectSingleNode调用具有QuestionsCollection。这将导致qa节点为空 InsertAfter方法中包含将处理空引

当我保存一个新的问题元素时,我需要它位于问题元素内,而问题元素又位于问题集合内,但是我保存新元素的方式在问题之外,以后不会阅读。 XML是如何获得的:(ABA是新元素)


错误:ArgumentException:引用节点不是此节点的子节点。

假设您没有在上面的代码中输入错误,我想我知道发生了什么

XML结构将QuestionCollection作为元素,而SelectSingleNode调用具有QuestionsCollection。这将导致qa节点为空

InsertAfter方法中包含将处理空引用节点的逻辑。而是将新元素作为根元素的子元素插入列表()


这似乎就是这里正在发生的事情。从SelectSingleNode参数中删除额外的s,您应该会很好。

假设您没有在上面的代码中输入错误,我想我知道发生了什么

XML结构将QuestionCollection作为元素,而SelectSingleNode调用具有QuestionsCollection。这将导致qa节点为空

InsertAfter方法中包含将处理空引用节点的逻辑。而是将新元素作为根元素的子元素插入列表()


这似乎就是这里正在发生的事情。从SelectSingleNode参数中删除额外的s,您应该会很好。

@Marshall Tigerus是正确的,但还有更多

更改此项:

XmlElement q = doc.CreateElement("Question");
q.InnerText = Question;

XmlNode qa = doc.SelectSingleNode("QuestionCollection/Questions");
XmlNode start = qa.SelectSingleNode("START");

qa.InsertAfter(q,start);

@马歇尔·蒂格罗斯是正确的,但还有更多

更改此项:

XmlElement q = doc.CreateElement("Question");
q.InnerText = Question;

XmlNode qa = doc.SelectSingleNode("QuestionCollection/Questions");
XmlNode start = qa.SelectSingleNode("START");

qa.InsertAfter(q,start);

中断SelectSingleNode部分并确保它选择了正确的节点。我还将注意到,在您的代码中,您在select singe node调用中使用了QuestionsCollection而不是QuestionCollection,这是您的新节点?“ABA”还是“AAA”?因为您的代码试图在“开始”节点之后插入新节点。如果要将其添加到问题节点的末尾,请选择问题节点的SingleNode,然后使用AppendChild。中断SelectSingleNode部分并确保它选择了正确的节点。我还将注意到,在您的代码中,您在select singe node调用中使用了QuestionsCollection而不是QuestionCollection,这是您的新节点?“ABA”还是“AAA”?因为您的代码试图在“开始”节点之后插入新节点。如果要将其添加到“问题”节点的末尾,请选择“问题”节点的“单一节点”,然后使用“附加子节点”。ArgumentException:引用节点不是此节点的子节点。System.Xml.XmlNode.CheckNodeInsertion(System.Xml.XmlNode newChild,System.Xml.XmlNode refChild)ArgumentException:引用节点不是此节点的子节点。System.Xml.XmlNode.CheckNodeInsertion(System.Xml.XmlNode newChild,System.Xml.XmlNode refChild)谢谢,它正在工作,我想添加属性,元素…?
q.SetAttribute(“id”,“123”)
q.AppendChild(doc.CreateElement(“Answer”)元素的值?值只是另一个节点。创建一个文本节点并使用appendChildThank,它正在工作,我想添加属性、元素…?
q.SetAttribute(“id”、“123”)
q.AppendChild(doc.CreateElement(“Answer”)元素的值?值只是另一个节点。创建文本节点并使用AppendChild
XmlDocument doc = new XmlDocument ();
doc.Load ("Assets/Resources/Questions.xml");

XmlNode root = doc.DocumentElement;

XmlElement q = doc.CreateElement ("Question");
q.InnerText = Question;

XmlNode qa = doc.SelectSingleNode ("QuestionCollection/Questions/START");

root.InsertAfter(q,qa);

doc.Save ("Assets/Resources/Questions.xml");
Instance.CloseWindow ();
XmlElement q = doc.CreateElement("Question");
q.InnerText = Question;

XmlNode qa = doc.SelectSingleNode("QuestionCollection/Questions");
XmlNode start = qa.SelectSingleNode("START");

qa.InsertAfter(q,start);