C# c中的WRITEXML错误#
有人能告诉我我做错了什么吗?我试图用xml生成一个系统信息。我的xml模式是这样的C# c中的WRITEXML错误#,c#,xml,visual-studio-2010,C#,Xml,Visual Studio 2010,有人能告诉我我做错了什么吗?我试图用xml生成一个系统信息。我的xml模式是这样的 <root> <system> <applications> </applications> </system> </root> 也不起作用 writer.WriteStartElement(".Net Framework 4", NET_FRAMEWORK.ToString()); 给出了无法
<root>
<system>
<applications>
</applications>
</system>
</root>
也不起作用
writer.WriteStartElement(".Net Framework 4", NET_FRAMEWORK.ToString());
给出了无法写入十六进制值0x20的错误
NET_框架是一个布尔值。
基本上我搞砸了XML
using (XmlWriter writer = XmlWriter.Create("sys_info.xml"))
{
writer.WriteStartDocument();
writer.WriteStartElement("System");
writer.WriteStartElement("OS");
writer.WriteElementString("Ver", Environment.OSVersion.ToString());
writer.WriteElementString("Execute Bit Length", "64");
writer.WriteElementString("Registry version", b.ToString());
writer.WriteEndElement();
writer.WriteStartElement("APPCHECK");
writer.WriteStartElement(".Net Framework 4", NET_FRAMEWORK.ToString());
writer.WriteStartElement("PDF reader", PDF_READ.ToString());
writer.WriteStartElement("internet Explorer Version", IE.ToString());
writer.WriteEndElement();
writer.WriteEndDocument();
您的代码无法工作,因为在
writeStarteElement
和WriteElementString
的第一个参数中不能使用带空格和标点的值。同样,对于每个writeStarteElement
您需要添加WriteEndElement
,因为您不能在writeStarteElement
和WriteElementString
的第一个参数中使用带空格和标点的值,所以代码不起作用。另外,对于每个writeStarteElement
,您需要添加writeDelete
注意,XML节点名称中不允许使用空格,因此需要更改或删除它们
另外,我建议您尝试Linq to XML:
var xDocument = new XDocument(
new XElement("root",
new XElement("System",
new XElement("OS",
new XElement("Ver", Environment.OSVersion.ToString()),
new XElement("Execute_Bit_Length", "64"),
new XElement("Registry_version", b)
),
new XElement("APPCHECK",
new XElement("NET_Framework_4", NET_FRAMEWORK),
new XElement("PDF_Reader", PDF_READ),
new XElement("Internet_Explorer_Version", IE)
)
)));
xDocument.Save("sys_info.xml");
请注意,XML节点名称中不允许使用空格,因此需要更改或删除它们 另外,我建议您尝试Linq to XML:
var xDocument = new XDocument(
new XElement("root",
new XElement("System",
new XElement("OS",
new XElement("Ver", Environment.OSVersion.ToString()),
new XElement("Execute_Bit_Length", "64"),
new XElement("Registry_version", b)
),
new XElement("APPCHECK",
new XElement("NET_Framework_4", NET_FRAMEWORK),
new XElement("PDF_Reader", PDF_READ),
new XElement("Internet_Explorer_Version", IE)
)
)));
xDocument.Save("sys_info.xml");
writer.WriteElementString(“Ver”,Environment.OSVersion.ToString());运行良好though@user1235546这是因为“Ver”不包含空格和标点符号,这些空格和标点符号不能在WriteElementString
的第一个参数中使用(从我上面的答案中可以清楚地看到吗?).writer.WriteElementString(“Ver”,Environment.OSVersion.ToString());运行良好though@user1235546这是因为“Ver”不包含空格和标点符号,这些空格和标点符号不能在WriteElementString
的第一个参数中使用(从我上面的答案文本中是否清楚?)。