0

これは私が3番目の部分のAPIから返すxmlです:

<data>
    <installations>
        <installation>
            <reader>1</reader>
            <reader>2</reader>
            <reader>3</reader>
            <reader>4</reader>
        </installation>
    </installations
</data>

そして、これらは私が今持っているクラスです

public class data
{
    public List<installation> installations
}

public class installation
{
    // HERE I DON'T KNOW HOW TO DO THE <reader> STUFF
}

私は誰かがこれがどのように行われるべきかを知っていることを願っています

/マーティン

4

3 に答える 3

2

XSD.exeクラスを自動的に作成するために使用できます。

REM Infer XSD from XML
xsd.exe myfile.xml

REM Create classes from XSD
xsd.exe myfile.xsd /classes
于 2012-09-07T09:30:16.957 に答える
1

クラスは次のようになります。

public class data
{
    public List<installation> installations { get; set; }
    public data() { installations = new List<installation>(); }
}

public class installation
{
    [XmlElement("reader")]
    public List<reader> reader { get; set; }
    public installation() { reader = new List<reader>(); }
}

public class reader
{
    [XmlTextAttribute]
    public Int32 value {get;set;}
}

ここで重要なことは次の 2 つです。

  1. を使用して、プロパティによって作成されるノードXmlElement("reader")を非表示にします。<reader></ reader>List<reader> reader

  2. を として作成XmlTextAttributeするための の使用。<reader><value>1</value></reader><reader>1</reader>

于 2012-09-07T10:13:03.030 に答える
-1
public class data 
{
List<List<reader>> installations = new List<List<reader>>();
List<reader> installation = new List<reader>();
installation.Add(new reader());
installation.Add(new reader());
installation.Add(new reader());
installation.Add(new reader());
installations.Add(installation);
}

また

public class data
{
    public List<installation> installations
}

public class installation : List<reader>
{
    public void AddReader(reader obj)
    {
        this.Add(obj);
    }
}

他の方法では、XmlSerializer(typeof(UnknownClass)) を使用せずにカスタム xml を解析します。

LINQ to Xml を使用。

XDocument doc = XDocument.Parse(xmlTextFromThirdParty);
于 2012-09-07T09:43:57.503 に答える