C#serialize元素有多个元素名称?

时间:2013-10-30 12:09:55

标签: c# xml xml-serialization

我正在为客户端开发一个项目,该项目涉及连接到API,并使用它返回的数据。由于许多现有系统依赖API,因此无法更改API。

这是问题所在。其中一个XML标签(类别)有几个子类别。但是指定类别的包装标签在每个级别都被命名为不同的东西。

这是一个例子。

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<Response>
    <Category>
        <ID>Some ID</ID>
        <Name>Some name</Name>
        <SubCatLevel2> <!-- This is a category tag - notice how it is named differently. -->
            <Category>
                <ID>Some ID</ID>
                <Name>Some name</Name>
                <SubCatLevel3> <!-- This is a category tag - notice how it is named differently. -->
                    <Category>
                        <ID>Some ID</ID>
                        <Name>Some name</Name>
                        <SubCatLevel4> <!-- This is a category tag - notice how it is named differently. -->
                            <Category>
                                <ID>Some ID</ID>
                                <Name>Some name</Name>
                            </Category>
                        </SubCatLevel4>
                    </Category>
                    <Category>
                        <ID>Some ID</ID>
                        <Name>Some name</Name>
                        <SubCatLevel4> <!-- This is a category tag - notice how it is named differently. -->
                            <Category>
                                <ID>Some ID</ID>
                                <Name>Some name</Name>
                            </Category>
                        </SubCatLevel4>
                    </Category>
                </SubCatLevel3>
            </Category>
        </SubCatLevel2>
    </Category>
    <Category>
        <ID>3</ID>
        <Name>Trailere</Name>
        <ToolCount>1</ToolCount>
        <SubCatLevel2/>
    </Category>
</Response>

所以问题是 - 我如何(使用XmlSerializer)通过使用属性来反序列化这个XML?我希望类别有一个子类别列表,知道类别树的最大深度是4,并且它的可能元素名称是“SubCatLevel1”,“SubCatLevel2”,“SubCatLevel3”和“SubCatLevel4”。

修改 我能以某种方式使用XmlAnyElementAttribute吗?

0 个答案:

没有答案