2011-11-25 7 views
1

可能性の重複:XMLSerializerを使用して、以下のクラスのオブジェクトに属性を取得するためにXMLデシリアライザを設定するにはどうすればよいですか?

<root> 
    <foo> some content </foo> 
    <bar id="someId">someContent</bar> 
</root> 


Deserializing XML, how do I access attributes?

私は、次のXMLをデシリアライズしています。

[XmlRootAttribute("foobar")] 
public class foobar 
{ 

    [XmlElementAttribute("foo")] 
    public string foo { get; set; } 

    [XmlElementAttribute("bar")] 
    public string bar { get; set; }   

} 

しかし、これはbarタグ内someIdをピックアップしていません。それを拾うために私は何を変える必要がありますか?私はに2つ目のプロパティを変更し、上記のクラスで

[XmlElementAttribute("bar")] 
public Bar bar { get; set; } 

そして新しいクラス定義された:これはまだ拾っ

[XmlTypeAttribute] 
    public class Bar 
    { 
     [XmlAttribute("id")] 
     public string id { get; set; } 

     [XmlText] 
     public string Value { get; set; } 
    } 

は、私はこれを試してみました値は Idではありません。

+0

属性を持つことは文字列に意味をなさないので、 'bar'オブジェクトを文字列以外のものにする必要があると思います。 – jv42

+0

( "id")を付けずにXmlAttributeを試してみましたか? – Steve

+1

同じ問題:http://stackoverflow.com/questions/6003847/deserializing-xml-how-do-i-access-attributes – Steve

答えて

1

修正する必要があるXmlAttribute( "id")を使用しないでください。

関連する問題