复杂的XML反序列化 [英] Complex XML deserialization
问题描述
我试图反序列化一个复杂的XML文件。我有我的主类结构使得它得到全部在第一个孩子节点信息的,我甚至有它,这样我可以得到 CLIENTNAME
这是深两层。但是,任何超出这似乎并没有工作。我得到一个列表项为1的计数,但没有信息列表中。
我的 OrderTaxes
和 OrderTransactions
列表回来了计数= 1
,但所有字段为空。
我敢肯定这是我的同班同学有问题。结构和朝向修正,这将是非常赞赏的任何帮助。
下面是XML:
<&的OrderDetail GT;
< MessageTypeCode> 82540< / MessageTypeCode>
< OrderDetailId> 59339463< / OrderDetailId>
<&ClientInfo客户端GT;
<&CLIENTNAME GT; LenderName会出现此处< / CLIENTNAME>
< / ClientInfo客户端>
< OrderTaxes>
< OrderTax>
< TaxId> 9202225< / TaxId>
< / OrderTax>
< / OrderTaxes>
< OrderTransactions>
< OrderTransaction>
< LoanAmount />
<标题>
< TitleVendors>
< TitleVendor>
< VendorInstructions方式>等等等等等等等等< / VendorInstructions>
< VendorServices>
< TitleVendorService>
< TitleVendorServiceId> 6615159< / TitleVendorServiceId>
< ServiceCode> 1OWNER< / ServiceCode>
< CustomVendorInstructions>等等等等等等等等等等< / CustomVendorInstructions>
< / TitleVendorService>
< / VendorServices>
< / TitleVendor>
< / TitleVendors>
< /标题>
< / OrderTransaction>
< / OrderTransactions>
< /&的OrderDetail GT;
和这里是类:
命名空间TSIxmlParser
{
[XmlRoot(的OrderDetail)]
公共类OrderData
{
[的XmlElement(MessageTypeCode )
公共字符串MessageTypeCode {搞定;组; }
[的XmlElement(OrderDetailId)]
公共字符串ORDERNUMBER {搞定;组; }
[的XmlElement(ClientInfo客户端)]
公开名单<&ClientInfo客户端GT; ClientInfos =新的List<&ClientInfo客户端GT;();
[XmlArray(OrderTaxes)]
[XmlArrayItem(OrderTax)]
公开名单< OrderTax> OrderTaxes =新的List< OrderTax>();
[XmlArray(OrderTransactions)]
[XmlArrayItem(OrderTransaction)]
公开名单< OrderTransaction> OrderTransactions =新的List< OrderTransaction>();
}
公共类ClientInfo客户端
{
[的XmlElement(CLIENTNAME)]
公共字符串CLIENTNAME {搞定;组; }
}
公共类OrderTax
{
[的XmlElement(TaxId)]
公共字符串TaxId {搞定;组; }
}
公共类OrderTransaction
{
[的XmlElement(LoanAmount)]
公共字符串LoanAmount {搞定;组; }
[XmlArray(标题)]
[XmlArrayItem(TitleVendors)]
公开名单<标题>标题{搞定;组; }
}
公共类标题
{
[XmlArrayItem(TitleVendors)]
公开名单< TitleVendors> TitleVendors {搞定;组; }
}
公共类TitleVendors
{
[XmlArray(TitleVendor)]
公开名单< TitleVendor> TitleVendor {搞定;组; }
}
公共类TitleVendor
{
[的XmlElement(VendorInstructions)]
公共字符串VendorInstructions {搞定;组; }
[XmlArray(VendorServices)]
[XmlArrayItem(TitleVendorService)]
公开名单< TitleVendorService> VendorServices {搞定;组; }
}
公共类TitleVendorService
{
[的XmlElement(TitleVendorServiceId)]
公共字符串TitleVendorServiceId {搞定;组; }
[的XmlElement(ServiceCode)]
公共字符串ServiceCode {搞定;组; }
[的XmlElement(CustomVendorInstructions)]
公共字符串CustomVendorInstructions {搞定;组; }
}
}
好吧,我不知道,如果你想这个(反序列化的XML的原始转储):
{
MessageTypeCode:82540 ,
OrderDetailId:59339463,
ClientInfo客户端:
{
CLIENTNAME:LenderName会出现在这里
},
OrderTaxes:
{
OrderTax:
{
TaxId:9202225
}
},
OrderTransactions:
{
OrderTransaction:
{
LoanAmount:{}
标题:
{
TitleVendors:
{
TitleVendor:
{
VendorInstructions:等等等等等等等等。,
VendorServices:
{
TitleVendorService:
{
TitleVendorServiceId:6615159,
ServiceCode:1OWNER,
CustomVendorInstructions:等等等等等等等等等等
}
}
}
}
}
}
}
}
所以基本上我只是用编辑 - >粘贴特殊 - >粘贴XML作为类
:
///<言论/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(准则)]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType =真)]
[ System.Xml.Serialization.XmlRootAttribute(命名空间=,ISNULLABLE = FALSE)]
公共部分类的OrderDetail
{
私人UINT messageTypeCodeField;
私人UINT orderDetailIdField;
私人OrderDetailClientInfo clientInfoField;
私人OrderDetailOrderTaxes orderTaxesField;
私人OrderDetailOrderTransactions orderTransactionsField;
///<言论/>
公共UINT MessageTypeCode
{
得到
{
返回this.messageTypeCodeField;
}
组
{
this.messageTypeCodeField =价值;
}
}
///<言论/>
公共UINT OrderDetailId
{
得到
{
返回this.orderDetailIdField;
}
组
{
this.orderDetailIdField =价值;
}
}
///<言论/>
公共OrderDetailClientInfo ClientInfo客户端
{
得到
{
返回this.clientInfoField;
}
组
{
this.clientInfoField =价值;
}
}
///<言论/>
公共OrderDetailOrderTaxes OrderTaxes
{
得到
{
返回this.orderTaxesField;
}
组
{
this.orderTaxesField =价值;
}
}
///<言论/>
公共OrderDetailOrderTransactions OrderTransactions
{
得到
{
返回this.orderTransactionsField;
}
组
{
this.orderTransactionsField =价值;
}
}
}
///<言论/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(准则)]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType =真)]
公部分类OrderDetailClientInfo
{
私人字符串clientNameField;
///<言论/>
公共字符串CLIENTNAME
{
得到
{
返回this.clientNameField;
}
组
{
this.clientNameField =价值;
}
}
}
///<言论/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(准则)]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType =真)]
公部分类OrderDetailOrderTaxes
{
私人OrderDetailOrderTaxesOrderTax orderTaxField;
///<言论/>
公共OrderDetailOrderTaxesOrderTax OrderTax
{
得到
{
返回this.orderTaxField;
}
组
{
this.orderTaxField =价值;
}
}
}
///<言论/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(准则)]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType =真)]
公部分类OrderDetailOrderTaxesOrderTax
{
私人UINT taxIdField;
///<言论/>
公共UINT TaxId
{
得到
{
返回this.taxIdField;
}
组
{
this.taxIdField =价值;
}
}
}
///<言论/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(准则)]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType =真)]
公部分类OrderDetailOrderTransactions
{
私人OrderDetailOrderTransactionsOrderTransaction orderTransactionField;
///<言论/>
公共OrderDetailOrderTransactionsOrderTransaction OrderTransaction
{
得到
{
返回this.orderTransactionField;
}
组
{
this.orderTransactionField =价值;
}
}
}
///<言论/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(准则)]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType =真)]
公部分类OrderDetailOrderTransactionsOrderTransaction
{
私有对象loanAmountField;
私人OrderDetailOrderTransactionsOrderTransactionTitle titleField;
///<言论/>
公共对象LoanAmount
{
得到
{
返回this.loanAmountField;
}
组
{
this.loanAmountField =价值;
}
}
///<言论/>
公共OrderDetailOrderTransactionsOrderTransactionTitle标题
{
得到
{
返回this.titleField;
}
组
{
this.titleField =价值;
}
}
}
///<言论/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(准则)]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType =真)]
公部分类OrderDetailOrderTransactionsOrderTransactionTitle
{
私人OrderDetailOrderTransactionsOrderTransactionTitleTitleVendors titleVendorsField;
///<言论/>
公共OrderDetailOrderTransactionsOrderTransactionTitleTitleVendors TitleVendors
{
得到
{
返回this.titleVendorsField;
}
组
{
this.titleVendorsField =价值;
}
}
}
///<言论/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(准则)]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType =真)]
公部分类OrderDetailOrderTransactionsOrderTransactionTitleTitleVendors
{
私人OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendor titleVendorField;
///<言论/>
公共OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendor TitleVendor
{
得到
{
返回this.titleVendorField;
}
组
{
this.titleVendorField =价值;
}
}
}
///<言论/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(准则)]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType =真)]
公部分类OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendor
{
私人字符串vendorInstructionsField;
私人OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendorVendorServices vendorServicesField;
///<言论/>
公共字符串VendorInstructions
{
得到
{
返回this.vendorInstructionsField;
}
组
{
this.vendorInstructionsField =价值;
}
}
///<言论/>
公共OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendorVendorServices VendorServices
{
得到
{
返回this.vendorServicesField;
}
组
{
this.vendorServicesField =价值;
}
}
}
///<言论/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(准则)]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType =真)]
公部分类OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendorVendorServices
{
私人OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendorVendorServicesTitleVendorService titleVendorServiceField;
///<言论/>
公共OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendorVendorServicesTitleVendorService TitleVendorService
{
得到
{
返回this.titleVendorServiceField;
}
组
{
this.titleVendorServiceField =价值;
}
}
}
///<言论/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(准则)]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType =真)]
公部分类OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendorVendorServicesTitleVendorService
{
私人UINT titleVendorServiceIdField;
私人字符串serviceCodeField;
私人字符串customVendorInstructionsField;
///<言论/>
公共UINT TitleVendorServiceId
{
得到
{
返回this.titleVendorServiceIdField;
}
组
{
this.titleVendorServiceIdField =价值;
}
}
///<言论/>
公共字符串ServiceCode
{
得到
{
返回this.serviceCodeField;
}
组
{
this.serviceCodeField =价值;
}
}
///<言论/>
公共字符串CustomVendorInstructions
{
得到
{
返回this.customVendorInstructionsField;
}
组
{
this.customVendorInstructionsField =价值;
}
}
}
使用的所有代码:
VAR的xmlString = @
<的OrderDetail>
< MessageTypeCode> 82540< / MessageTypeCode>
< OrderDetailId> 59339463< / OrderDetailId>
< ClientInfo客户端>
< CLIENTNAME> LenderName会出现此处< / CLIENTNAME>
< / ClientInfo客户端>
< OrderTaxes>
< OrderTax>
< TaxId> 9202225< / TaxId>
< / OrderTax>
< / OrderTaxes>
< OrderTransactions>
< OrderTransaction>
< LoanAmount />
<标题>
< TitleVendors>
< TitleVendor>
< VendorInstructions>等等。等等等等等等< / VendorInstructions>
< VendorServices>
< TitleVendorService>
< TitleVendorServiceId> 6615159< / TitleVendorServiceId>
< ServiceCode> 1OWNER< / ServiceCode>
< CustomVendorInstructions>等等等等等等等等等等< / CustomVendorInstructions>
< / TitleVendorService>
< / VendorServices>
< / TitleVendor>
< / TitleVendors>
< /标题>
< / OrderTransaction>
< / OrderTransactions>
< /&的OrderDetail GT;;
VAR XML =新的OrderDetail();
System.Xml.Serialization.XmlSerializer串=新的
系统.Xml.Serialization.XmlSerializer(typeof运算(的OrderDetail));使用
(XmlReader中读取= XmlReader.Create(新StringReader(的xmlString))){
XML =(的OrderDetail)serializer.Deserialize (读卡器);
}
VAR xmlDump = xml.Dump();
I'm trying to deserialize a complex XML file. i have my main class structured so it gets all of the info in the first child nodes, I even have it so that i can obtain the ClientName
which is two layers deep. However, anything beyond that does not seem to work. I get a List item with a count of 1 but no information is inside the list.
My OrderTaxes
and OrderTransactions
lists come back with a Count = 1
but all of the fields are null.
I'm positive it is a problem with my class structure and any help towards correcting this would be very appreciated.
Here is the XML:
<OrderDetail>
<MessageTypeCode>82540</MessageTypeCode>
<OrderDetailId>59339463</OrderDetailId>
<ClientInfo>
<ClientName>LenderName will appear here</ClientName>
</ClientInfo>
<OrderTaxes>
<OrderTax>
<TaxId>9202225</TaxId>
</OrderTax>
</OrderTaxes>
<OrderTransactions>
<OrderTransaction>
<LoanAmount/>
<Title>
<TitleVendors>
<TitleVendor>
<VendorInstructions>blah blah blah blah .</VendorInstructions>
<VendorServices>
<TitleVendorService>
<TitleVendorServiceId>6615159</TitleVendorServiceId>
<ServiceCode>1OWNER</ServiceCode>
<CustomVendorInstructions>blah blah blah blah blah </CustomVendorInstructions>
</TitleVendorService>
</VendorServices>
</TitleVendor>
</TitleVendors>
</Title>
</OrderTransaction>
</OrderTransactions>
</OrderDetail>
And here is the class:
namespace TSIxmlParser
{
[XmlRoot("OrderDetail")]
public class OrderData
{
[XmlElement("MessageTypeCode")]
public string MessageTypeCode { get; set; }
[XmlElement("OrderDetailId")]
public string OrderNumber { get; set; }
[XmlElement("ClientInfo")]
public List<ClientInfo> ClientInfos = new List<ClientInfo>();
[XmlArray("OrderTaxes")]
[XmlArrayItem("OrderTax")]
public List<OrderTax> OrderTaxes = new List<OrderTax>();
[XmlArray("OrderTransactions")]
[XmlArrayItem("OrderTransaction")]
public List<OrderTransaction> OrderTransactions = new List<OrderTransaction>();
}
public class ClientInfo
{
[XmlElement("ClientName")]
public string ClientName { get; set; }
}
public class OrderTax
{
[XmlElement("TaxId")]
public string TaxId { get; set; }
}
public class OrderTransaction
{
[XmlElement("LoanAmount")]
public string LoanAmount { get; set; }
[XmlArray("Title")]
[XmlArrayItem("TitleVendors")]
public List<Title> Titles { get; set; }
}
public class Title
{
[XmlArrayItem("TitleVendors")]
public List<TitleVendors> TitleVendors { get; set; }
}
public class TitleVendors
{
[XmlArray("TitleVendor")]
public List<TitleVendor> TitleVendor { get; set; }
}
public class TitleVendor
{
[XmlElement("VendorInstructions")]
public string VendorInstructions { get; set; }
[XmlArray("VendorServices")]
[XmlArrayItem("TitleVendorService")]
public List<TitleVendorService> VendorServices { get; set; }
}
public class TitleVendorService
{
[XmlElement("TitleVendorServiceId")]
public string TitleVendorServiceId { get; set; }
[XmlElement("ServiceCode")]
public string ServiceCode { get; set; }
[XmlElement("CustomVendorInstructions")]
public string CustomVendorInstructions { get; set; }
}
}
Well, I am not sure if you wanted this (raw dump of deserialized XML):
{
MessageTypeCode: 82540,
OrderDetailId: 59339463,
ClientInfo:
{
ClientName: LenderName will appear here
},
OrderTaxes:
{
OrderTax:
{
TaxId: 9202225
}
},
OrderTransactions:
{
OrderTransaction:
{
LoanAmount: {},
Title:
{
TitleVendors:
{
TitleVendor:
{
VendorInstructions: blah blah blah blah .,
VendorServices:
{
TitleVendorService:
{
TitleVendorServiceId: 6615159,
ServiceCode: 1OWNER,
CustomVendorInstructions: blah blah blah blah blah
}
}
}
}
}
}
}
}
So basically I just used Edit -> Paste special -> Paste XML as Classes
:
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class OrderDetail
{
private uint messageTypeCodeField;
private uint orderDetailIdField;
private OrderDetailClientInfo clientInfoField;
private OrderDetailOrderTaxes orderTaxesField;
private OrderDetailOrderTransactions orderTransactionsField;
/// <remarks/>
public uint MessageTypeCode
{
get
{
return this.messageTypeCodeField;
}
set
{
this.messageTypeCodeField = value;
}
}
/// <remarks/>
public uint OrderDetailId
{
get
{
return this.orderDetailIdField;
}
set
{
this.orderDetailIdField = value;
}
}
/// <remarks/>
public OrderDetailClientInfo ClientInfo
{
get
{
return this.clientInfoField;
}
set
{
this.clientInfoField = value;
}
}
/// <remarks/>
public OrderDetailOrderTaxes OrderTaxes
{
get
{
return this.orderTaxesField;
}
set
{
this.orderTaxesField = value;
}
}
/// <remarks/>
public OrderDetailOrderTransactions OrderTransactions
{
get
{
return this.orderTransactionsField;
}
set
{
this.orderTransactionsField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class OrderDetailClientInfo
{
private string clientNameField;
/// <remarks/>
public string ClientName
{
get
{
return this.clientNameField;
}
set
{
this.clientNameField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class OrderDetailOrderTaxes
{
private OrderDetailOrderTaxesOrderTax orderTaxField;
/// <remarks/>
public OrderDetailOrderTaxesOrderTax OrderTax
{
get
{
return this.orderTaxField;
}
set
{
this.orderTaxField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class OrderDetailOrderTaxesOrderTax
{
private uint taxIdField;
/// <remarks/>
public uint TaxId
{
get
{
return this.taxIdField;
}
set
{
this.taxIdField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class OrderDetailOrderTransactions
{
private OrderDetailOrderTransactionsOrderTransaction orderTransactionField;
/// <remarks/>
public OrderDetailOrderTransactionsOrderTransaction OrderTransaction
{
get
{
return this.orderTransactionField;
}
set
{
this.orderTransactionField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class OrderDetailOrderTransactionsOrderTransaction
{
private object loanAmountField;
private OrderDetailOrderTransactionsOrderTransactionTitle titleField;
/// <remarks/>
public object LoanAmount
{
get
{
return this.loanAmountField;
}
set
{
this.loanAmountField = value;
}
}
/// <remarks/>
public OrderDetailOrderTransactionsOrderTransactionTitle Title
{
get
{
return this.titleField;
}
set
{
this.titleField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class OrderDetailOrderTransactionsOrderTransactionTitle
{
private OrderDetailOrderTransactionsOrderTransactionTitleTitleVendors titleVendorsField;
/// <remarks/>
public OrderDetailOrderTransactionsOrderTransactionTitleTitleVendors TitleVendors
{
get
{
return this.titleVendorsField;
}
set
{
this.titleVendorsField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class OrderDetailOrderTransactionsOrderTransactionTitleTitleVendors
{
private OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendor titleVendorField;
/// <remarks/>
public OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendor TitleVendor
{
get
{
return this.titleVendorField;
}
set
{
this.titleVendorField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendor
{
private string vendorInstructionsField;
private OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendorVendorServices vendorServicesField;
/// <remarks/>
public string VendorInstructions
{
get
{
return this.vendorInstructionsField;
}
set
{
this.vendorInstructionsField = value;
}
}
/// <remarks/>
public OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendorVendorServices VendorServices
{
get
{
return this.vendorServicesField;
}
set
{
this.vendorServicesField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendorVendorServices
{
private OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendorVendorServicesTitleVendorService titleVendorServiceField;
/// <remarks/>
public OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendorVendorServicesTitleVendorService TitleVendorService
{
get
{
return this.titleVendorServiceField;
}
set
{
this.titleVendorServiceField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class OrderDetailOrderTransactionsOrderTransactionTitleTitleVendorsTitleVendorVendorServicesTitleVendorService
{
private uint titleVendorServiceIdField;
private string serviceCodeField;
private string customVendorInstructionsField;
/// <remarks/>
public uint TitleVendorServiceId
{
get
{
return this.titleVendorServiceIdField;
}
set
{
this.titleVendorServiceIdField = value;
}
}
/// <remarks/>
public string ServiceCode
{
get
{
return this.serviceCodeField;
}
set
{
this.serviceCodeField = value;
}
}
/// <remarks/>
public string CustomVendorInstructions
{
get
{
return this.customVendorInstructionsField;
}
set
{
this.customVendorInstructionsField = value;
}
}
}
All code used:
var xmlString = @
"<OrderDetail>
<MessageTypeCode>82540</MessageTypeCode>
<OrderDetailId>59339463</OrderDetailId>
<ClientInfo>
<ClientName>LenderName will appear here</ClientName>
</ClientInfo>
<OrderTaxes>
<OrderTax>
<TaxId>9202225</TaxId>
</OrderTax>
</OrderTaxes>
<OrderTransactions>
<OrderTransaction>
<LoanAmount/>
<Title>
<TitleVendors>
<TitleVendor>
<VendorInstructions>blah blah blah blah .</VendorInstructions>
<VendorServices>
<TitleVendorService>
<TitleVendorServiceId>6615159</TitleVendorServiceId>
<ServiceCode>1OWNER</ServiceCode>
<CustomVendorInstructions>blah blah blah blah blah </CustomVendorInstructions>
</TitleVendorService>
</VendorServices>
</TitleVendor>
</TitleVendors>
</Title>
</OrderTransaction>
</OrderTransactions>
</OrderDetail>";
var xml = new OrderDetail();
System.Xml.Serialization.XmlSerializer serializer = new
System.Xml.Serialization.XmlSerializer(typeof(OrderDetail));
using(XmlReader reader = XmlReader.Create(new StringReader(xmlString))) {
xml = (OrderDetail) serializer.Deserialize(reader);
}
var xmlDump = xml.Dump();
这篇关于复杂的XML反序列化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!