我正在使用xmlwriter来创建一个xml文档。 xml文档如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<ExceptionsList />
我如何阻止/&gt;并适当地结束根节点?
因此,我无法将任何内容附加到根节点。
我创建xml文件的代码如下所示:
string formatDate = DateTime.Now.ToString("d-MMM-yyyy");
XmlTextWriter xmlWriter = new XmlTextWriter(xmlfileName, Encoding.UTF8);
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.Indentation = 3;
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("ExceptionsList"); // ExceptionsList (Root) Element
xmlWriter.WriteEndElement(); // End of ExceptionsList (Root) Element
xmlWriter.WriteEndDocument();
xmlWriter.Flush();
xmlWriter.Close();
我按照以下方式添加到根节点:
XDocument xml = XDocument.Load(xmlFileName);
XElement root = xml.Root;
root.Add(new XElement("Exception",
new XElement("Exception Type", exceptionType),
new XElement("Exception Message", exceptionMessage),
new XElement("InnerException", innerException),
new XElement("Comment", comment)));
xml.Save(xmlFileName);
这也给我一个运行时错误的堆栈溢出。
任何帮助都将不胜感激。
提前致谢!
答案 0 :(得分:3)
您的代码是正确的,您无需更改ExceptionsList
元素的关闭方式。
xmlWriter.WriteStartElement("ExceptionsList"); // ExceptionsList (Root) Element
xmlWriter.WriteStartElement("Exception"); // An Exception element
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement(); // End of ExceptionsList (Root) Element
在第二个代码段中,您需要从元素名称中删除这些空格,因为XML规范禁止这样做,并将您的元素添加到XDocument
实例中,如下所示:
XDocument xml = new XDocument();
xml.Add(new XElement("Exception",
new XElement("ExceptionType", "Exception"),
new XElement("ExceptionMessage",
new XElement("InnerException", "innerException")),
new XComment("some comment")));
xml.Save("sample2.xml");
答案 1 :(得分:0)
我认为问题在于:
new XElement("Exception Type", exceptionType),
new XElement("Exception Message", exceptionMessage),
Exception Type
和Exception Mesage
都不是xml元素的有效名称。然后,当然,如果您使用此(注定)方法来记录错误...堆栈溢出。