0

一般的な質問をする必要があります。iPhoneで書いているので、目の前にコードがありません。

特定のXMLスキーマを表すクラスがあります。このXMLを返すSPROCがあります。私がする必要があるのは、XMLをこのクラスに逆シリアル化することです。

XML:

<xml>
     <person>
             <firstName>Bob</firstName>
             <lastName>Robby</lastName>
     </person>
</xml>

このXMLをカスタムPersonクラスに逆シリアル化して、このモデルをループしてビューに吐き出すことができるようにする必要があります。ある種のキャスティングが関係していると確信しています、私はそれを行う方法がわかりません。

4

2 に答える 2

0

私の解決策:

 public class Program {
        public static void Main(string[] args) {


            string xml = @"<xml><person><firstName>Bob</firstName><lastName>Robby</lastName></person></xml>";

            var doc = XElement.Parse(xml);
            var person = (from x in doc.Elements("person") select x).FirstOrDefault();

            XmlSerializer serializer = new XmlSerializer(typeof(Person));

            var sr = new StringReader(person.ToString());
            // Use the Deserialize method to restore the object's state.
            var myPerson = (Person)serializer.Deserialize(sr);

        }

    }

そしてクラス:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;

namespace ConsoleApplication3 {

    [XmlRoot("person")]
    public class Person {

        [XmlElement("firstName")]
        public string FirstName { get; set; }

        [XmlElement("lastName")]
        public string LastName { get; set; }
    }

}
于 2011-01-05T04:48:09.663 に答える
0

linqでは次のようになります

XDocument xmlFile = XDocument.Parse(yourXml)    
var people = (from x in xmlFile.Descendants("person")
              select new Person(){
                      firstname = (string)x.Element("firstname").Value,
                      lastname = (string)x.Element("lastname").Value
              });
于 2011-01-05T04:49:21.553 に答える