首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定制(反)序列化XmlDocument成员

定制(反)序列化XmlDocument成员
EN

Stack Overflow用户
提问于 2011-06-17 15:48:10
回答 1查看 987关注 0票数 0

我有以下类:

代码语言:javascript
复制
[XmlRoot("testclass")]
public class TestClass
{
    [XmlElement("name")]
    public string Name { get; set; }
    [XmlElement("value")]
    public string Value { get; set; }


    [XmlElement("items")]
    public XmlDocument Items
    {
        get;
        set;
    }
}

现在,使用以下数据初始化该类:

代码语言:javascript
复制
XmlDocument xml = new XmlDocument();
xml.LoadXml(@"
      <items>
        <item>
          <name>item1</name>
          <value>value1</value>
        </item>
        <item>
          <name>item2</name>
          <value>value2</value>
        </item>
       </items>
         ");

TestClass tc = new TestClass() {
    Name = "testclass",
    Value = "testclassvalue",
    Items = xml
};

当我序列化(.NET XmlSerializer)这个classI时,得到以下xml输出

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-16"?>
<testclass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <name>testclass</name>
    <value>testclassvalue</value>
    <items>
        <items>
            <item>
                <name>item1</name>
                <value>value1</value>
            </item>
            <item>
                <name>item2</name>
                <value>value2</value>
            </item>
        </items>
    </items>
</testclass>

让xmlserializer像这样输出节点的最好方法是什么?

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-16"?>
<testclass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <name>testclass</name>
    <value>testclassvalue</value>
    <items>
        <item>
            <name>item1</name>
            <value>value1</value>
        </item>
        <item>
            <name>item2</name>
            <value>value2</value>
        </item>
    </items>
</testclass>

另外,将这个xml序列化回我的类的最佳方法是什么?因此,以节点开头xmlelement将被反序列化为我的ItemsXml成员。

EN

回答 1

Stack Overflow用户

发布于 2011-06-17 19:12:22

尝试更改:

代码语言:javascript
复制
[XmlElement("items")]
public XmlDocument Items { get; set; }

仅仅是:

代码语言:javascript
复制
// [XmlArray("items")] <--- you can add this to get a lowercase "items"
// [XmlArrayItem("item")] <--- and this to name the actual item
public XmlDocument Items { get; set; }

所以如果没有[XmlElement("items")]

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

https://stackoverflow.com/questions/6382843

复制
相关文章

相似问题

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