任何人都可以告诉我这里我做错了什么。我正在尝试在xml中生成一个系统信息。我的XML模式是这样的
<root>
<system>
<applications>
</applications>
</system>
</root>
在互联网上窥探我发现了这个代码。但是很难实现它 面临的问题: “b”是我从regedit.exe的版本号
获得的字符串writer.WriteElementString("Execute Bit Length", "64");
也不起作用
writer.WriteStartElement(".Net Framework 4", NET_FRAMEWORK.ToString());
给我的错误是不能写十六进制值0x20 NET_FRAMEWORK是一个布尔值。 基本上我搞砸了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();
答案 0 :(得分:1)
请注意,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");
答案 1 :(得分:0)
您的代码无效,因为您无法在WriteStartElement
和WriteElementString
的第一个参数中使用带空格和标点符号的值。另外,对于每个WriteStartElement
,您需要添加WriteEndElement
。