首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c#中的WRITEXML错误

c#中的WRITEXML错误
EN

Stack Overflow用户
提问于 2012-03-03 18:25:12
回答 2查看 327关注 0票数 1

有人能告诉我我在这里做错了什么吗?我正在尝试在xml.My中生成系统信息

代码语言:javascript
复制
<root>
   <system>
        <applications>
        </applications>
   </system>
</root>

在互联网上窥探,我发现这个code.But很难实现它所面临的问题:"b“是我从regedit.exe的版本号中得到的一个字符串

代码语言:javascript
复制
writer.WriteElementString("Execute Bit Length", "64");

也不起作用

代码语言:javascript
复制
writer.WriteStartElement(".Net Framework 4", NET_FRAMEWORK.ToString());

出现错误无法写入十六进制值0x20 NET_FRAMEWORK is a boolean值。基本上我把XML搞砸了。

代码语言:javascript
复制
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();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-03 19:05:17

请注意,XML节点名称中不允许有空格,因此需要更改或删除它们。

另外,我建议您尝试使用Linq to XML:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2012-03-03 18:58:58

您的代码不能工作,因为您不能在WriteStartElementWriteElementString的第一个参数中使用带有空格和标点符号的值。另外,对于每个WriteStartElement,您都需要添加WriteEndElement

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9545328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档