2017-10-19 6 views
0

내 xml에 따라 Object를 만들어야합니다.이 객체는 C#의 webservice에 대한 입력으로 사용됩니다. 필드 형식의 XML to Object Conversion

내가이 XML이있는 경우

,

<v1:Field type="Note"> 
    <v1:name>Buyer’s Name should be as per Passport/Trade License. For existing Emaar property owners, please provide details as per existing profile.</v1:name> 
    <v1:category>MESSAGE</v1:category> 
    <v1:mandatory>N</v1:mandatory> 
    <v1:alias>DESCLAIMER_FYI</v1:alias> 
    <v1:value>Buyer’s Name should be as per Passport/Trade License. For existing Emaar property owners, please provide details as per existing profile.</v1:value> 
</v1:Field> 

내가 예를 들어, 기반으로 를 클래스를 만들 수 있습니다

속성이 값 < V1을하는 데 사용됩니다
public class Field 
{ 
    public string name{ set; get; } 
    public string category { set; get; } 
    public string mandatory { set; get; } 
    public string alias { set; get; } 
    public string value { set; get; } 
} 

필드 type = "참고">?

public property로 타입을 만들면 name과 같은 XML 태그로 올 것이고, 카테고리가오고 있지만 attribute라고하는 Field 태그로 만들고 싶습니다. Field 태그가있는 속성으로 작동하는 C#에서 사용할 수있는 항목은 무엇입니까?

답변

1
public class SomeIntInfo 
{ 
    [XmlAttribute] 
    public int Value { get; set; } 
} 
0

try xml linq. 아래 코드를 테스트합니다 :

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

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     const string FILENAME = @"c:\temp\test.xml"; 
     static void Main(string[] args) 
     { 
      XDocument doc = XDocument.Load(FILENAME); 

      XElement root = doc.Root; 
      XNamespace ns = root.GetNamespaceOfPrefix("v1"); 

      var results = root.Descendants(ns + "Field").Select(x => new Field() { 
       type = (string)x.Attribute("type"), 
       name = (string)x.Element(ns + "name"), 
       category = (string)x.Element(ns + "category"), 
       mandatory = (string)x.Element(ns + "mandatory"), 
       alias = (string)x.Element(ns + "alias"), 
       value = (string)x.Element(ns + "value"), 
      }).FirstOrDefault(); 
     } 
    } 
    public class Field 
    { 
     public string type { get; set; } 
     public string name { set; get; } 
     public string category { set; get; } 
     public string mandatory { set; get; } 
     public string alias { set; get; } 
     public string value { set; get; } 
    } 
}