1

我正在为客户开发一个项目,该项目涉及连接到 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某种方式使用吗?

4

0 回答 0