当字符串字段值为空格时,XMLSerializer 中出现问题

发布于 2024-10-15 01:34:39 字数 299 浏览 2 评论 0原文

使用 XMLSerializer 保存从 myClass 这样的类创建的对象

Public Class MyClass
{
  Public String test = " " ;
}

将导致:

<MyClass>
  <test> </test>
</MyClass>

但是当我想加载 xml 文件时,它看起来像是删除了我需要的空白。 我该如何解决这个问题? 谢谢

using XMLSerializer for saving an object created from a class like myClass

Public Class MyClass
{
  Public String test = " " ;
}

will result :

<MyClass>
  <test> </test>
</MyClass>

but when I want to load the xml file looks like it's removing the white space ,which I need .
How can I solve this problem ?
thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浅忆流年 2024-10-22 01:34:39

无法重现 - 看起来很好:

using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;

public class MyClass
{
    [XmlElement("test")]
    public string Test { get; set; }
}
static class Program
{
    static void Main()
    {
        XmlSerializer ser = new XmlSerializer(typeof(MyClass));
        MyClass orig = new MyClass { Test = " " }, clone;
        using (var file = XmlWriter.Create("my.xml"))
        {
            ser.Serialize(file, orig);
        }
        using (var file = XmlReader.Create("my.xml"))
        {
            clone = (MyClass)ser.Deserialize(file);
        }
        Console.WriteLine("'" + clone.Test + "'");
        Console.WriteLine(File.ReadAllText("my.xml"));
    }
}

输出:

' '

并且

<?xml version="1.0" encoding="utf-8"?><MyClass xmlns:xsi="http://www.w3.org/2001
/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><test> </test>
</MyClass>

它可能有助于更具体地说明您如何尝试查看它,这样它“看起来像是在删除空白”。

Cannot reproduce - it seems fine:

using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;

public class MyClass
{
    [XmlElement("test")]
    public string Test { get; set; }
}
static class Program
{
    static void Main()
    {
        XmlSerializer ser = new XmlSerializer(typeof(MyClass));
        MyClass orig = new MyClass { Test = " " }, clone;
        using (var file = XmlWriter.Create("my.xml"))
        {
            ser.Serialize(file, orig);
        }
        using (var file = XmlReader.Create("my.xml"))
        {
            clone = (MyClass)ser.Deserialize(file);
        }
        Console.WriteLine("'" + clone.Test + "'");
        Console.WriteLine(File.ReadAllText("my.xml"));
    }
}

outputs:

' '

and

<?xml version="1.0" encoding="utf-8"?><MyClass xmlns:xsi="http://www.w3.org/2001
/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><test> </test>
</MyClass>

It might help to be more specific about how you are trying to view it, such that it "looks like it's removing the white space".

是你 2024-10-22 01:34:39

我在读取 XML 文件时遇到了类似的问题。我还没有使用 XMLSerializer,但在将 XML 文件作为 XMLDocument 设置 XMLDocument.PreserveWhitespace = true 读取时。

I was running into a similar problem when reading my XML file. I haven't done work with XMLSerializer but when reading in an XML file as an XMLDocument set XMLDocument.PreserveWhitespace = true.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文