有人能告诉我我在这里做错了什么吗?我正在尝试在xml.My中生成系统信息
<root>
<system>
<applications>
</applications>
</system>
</root>在互联网上窥探,我发现这个code.But很难实现它所面临的问题:"b“是我从regedit.exe的版本号中得到的一个字符串
writer.WriteElementString("Execute Bit Length", "64");也不起作用
writer.WriteStartElement(".Net Framework 4", NET_FRAMEWORK.ToString());出现错误无法写入十六进制值0x20 NET_FRAMEWORK is a boolean值。基本上我把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();发布于 2012-03-03 19:05:17
请注意,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");发布于 2012-03-03 18:58:58
您的代码不能工作,因为您不能在WriteStartElement和WriteElementString的第一个参数中使用带有空格和标点符号的值。另外,对于每个WriteStartElement,您都需要添加WriteEndElement。
https://stackoverflow.com/questions/9545328
复制相似问题