向父节点添加多个子节点
本文关键字:子节点 添加 父节点 | 更新日期: 2023-09-27 17:50:09
我正在尝试创建一个XML文件与我收集的数据,但对于一个特定的我需要多个子标签生成
所以我希望有这样的东西:-
<Feedbacks>
<Feedback>
<Name></Name>
<Surname></Surname>
<Images>
<Image></Image>
<Image></Image>
<Image></Image>
</Images>
</Feedback>
</Feedbacks>
对不起,我不知道如何粘贴正确的XML文件在这里,但我认为你得到的想法。此刻,我有这段代码正在工作:-
private static void CreateFeedbackXMLFile()
{
XmlDocument doc = new XmlDocument();
XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
doc.AppendChild(docNode);
XmlNode Node = doc.CreateElement("Feedbacks");
doc.AppendChild(Node);
string fileName = "Feedback.xml";
string filePath = Properties.Settings.Default.DefaultFolder + "''" + fileName;
doc.Save(filePath);
}
public static void InsertFeedback(Feedback feedback)
{
CreateFeedbackXMLFile();
string filePath = Properties.Settings.Default.DefaultFolder + "''Feedback.xml" ;
XDocument xmlDoc = XDocument.Load(filePath);
XElement XParentElement = new XElement("Feedback");
InsertIntoXMLDoc(feedback, filePath, xmlDoc);
}
private static void InsertIntoXMLDoc(Feedback feedback, string filePath, XDocument xmlDoc)
{
xmlDoc.Element("Feedbacks").Add(new XElement("Feedback",
new XElement("Name", feedback.Name),
new XElement("Surname", feedback.Surname),
new XElement("Email", feedback.Email),
new XElement("Website", feedback.Website),
new XElement("Suggestion", feedback.Suggestion),
new XElement("Error", feedback.Error),
new XElement("MailingList", feedback.MailingList),
new XElement("Comments", feedback.Comments)
));
}
xmlDoc.Save(filePath);
}
现在我需要循环遍历imageList并根据我有多少张图片创建节点。
感谢您的帮助和时间
循环是您尝试的方法。事实上,没有"无循环"的方法来实现这一点。但是,您可以将循环伪装成LINQ
查询,使用如下所示:
xmlDoc.Element("Feedbacks").Add(
/* All the elements before your image list */
XElement("images",
from img in myImageList select new XElement(...)
)
/* All the elements after your image list, preceeded by a comma */
);
当然,您需要将myImageList
替换为实际的图像集合。注意,如果您有一个ImageList
控件,实际收集的不是控件本身,而是它的Images
属性。
此外,在...
上,您需要放置用于从映像创建每个节点的任何逻辑(使用自动类型化的本地变量img
为每个节点引用适当的映像)。