所以这是抛出异常的代码
#region Header
if (textBox2.Text != "")
{
try
{
xmlTW.WriteStartElement("Header");
xmlTW.WriteRaw(Environment.NewLine);
xmlTW.WriteString(textBox2.Text);
xmlTW.WriteRaw(Environment.NewLine);
xmlTW.WriteEndElement();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
#endregion
#region Body
if (textBox3.Text != "")
{
try
{
xmlTW.WriteStartElement("Rectangles");
xmlTW.WriteRaw(Environment.NewLine + textBox3.Text + Environment.NewLine);
xmlTW.WriteEndElement();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
#endregion
所以,问题是代码只有在两个文本框中的一个填充了数据时才会顺利运行,如果它们都包含文本,我会在WriteEndDocument()中获得无效的操作异常;
我知道它一定很简单,但我无法弄明白:P。 任何帮助表示赞赏。
提前致谢。
答案 0 :(得分:4)
格式良好的XML必须具有 Single 根元素。以下是格式良好的XML:
<Header>
Some text
</Header>
格式正确,因为Header
是根元素。但是,以下内容并不完善:
<Header>
Some text
</Header>
<Rectangles>
Some other text
</Rectangles>
要纠正它,你必须把它放在一些根元素中。
<myRoot>
<Header>
Some text
</Header>
<Rectangles>
Some other text
</Rectangles>
</myRoot>
答案 1 :(得分:3)
您需要将XmlWriterSettings
一致性级别设置为Fragment
。
这将使您能够保留所需的xml结构而无需添加根元素
var xmlWriterSettings = new XmlWriterSettings();
xmlWriterSettings.ConformanceLevel = ConformanceLevel.Fragment;
并创建xml这样写:
XmlWriter xmlTW = XmlWriter.Create("myFile.xml", xmlWriterSettings)
This链接可以帮助您开始使用XmlWriter