1

API に接続し、返されるデータを使用するクライアントのプロジェクトに取り組んでいます。多くの既存のシステムが API に依存しているため、API を変更することはできません。

これが問題です。XML タグの 1 つ (Category) には、いくつかのサブカテゴリがあります。ただし、カテゴリを指定するラッピング タグは、レベルごとに異なる名前が付けられています。

これが例です。

<?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