2017-08-09 43 views
1

我有一個XML,我想獲得所有節點值。但是在反序列化之後,我在我的訂單節點和內部節點中得到空值,請告訴我我正在做什麼錯誤。沒有獲得XML的所有節點值

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"> 
<SOAP:Body> 
    <Order Notes="Test Order" PackageTypeID="0" Service="Quote" CallerPhone="" CustomerCode="GA" Caller="" CalledBy="" CheckPiecesWeight="Y" ForceReRateFlag="True" RouteNumber="" OrderDate="08/04/2017" Auth="" Requestor="CVS - Lenexa" UserGUID="{788888-4555-4444-5455-55555}" GetUserGUIDDataCalledBy="Oreser" WebUserID="254282" UserName="TREW" ChangeOps="0" OrderID="1803019" OrderGUID="{6454546-ABD0-91CA-841D75A363CB}" Origin="W" OrderNumber="2718140" OrderDateTime="08/04/2017 10:00" CreateDate="08/09/17 00:31" DimWeightFactor="0" Pieces="1" Weight="0" RouteZone="LAX" CustomerGroup="" ServiceID="0" TotalMiles="0" AmountCharged="$0.00" DriverPayXML="1" CarrierTypeID="1" DueDateTime="8/4/2017 10:00:00 AM" PickedUpDateTime="" DeliveredDateTime="" OperationalStatus="N" saveorderpieceactionstatus="0" AmountChargedChanged="True"> 
     <Stops> 
      <Stop Sequence="1" StopType="P" Note="" Name="UPS" Address="Adreena St" City="Vansrn NIRC" State="CA" Zip="98741" Phone="" EarlyDateTime="" ScheduledDateTime="8/4/2017 10:00:00 AM" LateDateTime="" AVSQuality="1" Latitude="74.213827" Longitude="-418.481529" DispatchZoneFound="True" Pieces="1" Weight="0"> 
       <OrderStopPieces> 
        <OrderStopPiece Sequence="1" PieceAction="P" PieceID="714" OrderStopPieceID="1444"/> 
       </OrderStopPieces> 
      </Stop> 
      <Stop Sequence="2" StopType="D" Note="" Name="CCR Nicla" Address="S.BOSE STREET" City="ARI GUTS" State="CA" Zip="94125" Phone="1 (800) 360-0520" EarlyDateTime="" ScheduledDateTime="8/4/2017 10:00:00 AM" LateDateTime="" AVSQuality="1" Latitude="24.201719" Longitude="-17.491973" DispatchZoneFound="True" Pieces="0" Weight="0"> 
       <OrderStopPieces> 
        <OrderStopPiece Sequence="1" PieceAction="D" PieceID="714" OrderStopPieceID="144"/> 
       </OrderStopPieces> 
      </Stop> 
     </Stops> 
     <Pieces> 
      <Piece Sequence="1" Pieces="1" Weight="" Description="" ContainerReference="" Reference="1111" PieceID="1111"/> 
     </Pieces> 
     <OrderEvents> 
      <OrderEvent EventType="MYOrder" Note="Test" Add="True" EventDateTime="8/9/2017 12:31:08 AM" UserName="MMPIO"/> 
      <OrderEvent EventType="New" Note="" EventDateTime="8/9/2017 12:21:08 AM" UserName="MMPIO"/> 
     </OrderEvents> 
     <Site SiteID="13" CompanyID="1008" SiteCode="MMM" SiteType="C" Name="FOO" DBAName="KMI" Address="JHHHH" City="ARIZoNA" State="AR" Zip="125487" Message=" MUT" ARAccountNumber="15470" ARDeptNumber="741" APAccountNumber="14720" APDeptNumber="1" BankAccountNumber="5001" BankDeptNumber="1" DispatchNote="" PaymentGatewayID="0" MName="" MAddress="" MCity="" MState="" MZip="" LogoImageID="0" SiteStatus="C"/> 
     <OrderFees> 
      <OrderFee FeeTitle="TS" FeeCode="VS"/> 
      <OrderFee FeeTitle="WEEE DDEA" FeeCode="QE"/> 

     </OrderFees> 
     <OrderNotifies/> 
    </Order> 
</SOAP:Body> 

班反序列化

[XmlRoot(ElementName="OrderStopPiece")] 
public class OrderStopPiece { 
    [XmlAttribute(AttributeName="Sequence")] 
    public string Sequence { get; set; } 
    [XmlAttribute(AttributeName="PieceAction")] 
    public string PieceAction { get; set; } 
    [XmlAttribute(AttributeName="PieceID")] 
    public string PieceID { get; set; } 
    [XmlAttribute(AttributeName="OrderStopPieceID")] 
    public string OrderStopPieceID { get; set; } 
} 

[XmlRoot(ElementName="OrderStopPieces")] 
public class OrderStopPieces { 
    [XmlElement(ElementName="OrderStopPiece")] 
    public OrderStopPiece OrderStopPiece { get; set; } 
} 

[XmlRoot(ElementName="Stop")] 
public class Stop { 
    [XmlElement(ElementName="OrderStopPieces")] 
    public OrderStopPieces OrderStopPieces { get; set; } 
    [XmlAttribute(AttributeName="Sequence")] 
    public string Sequence { get; set; } 
    [XmlAttribute(AttributeName="StopType")] 
    public string StopType { get; set; } 
    [XmlAttribute(AttributeName="Note")] 
    public string Note { get; set; } 
    [XmlAttribute(AttributeName="Name")] 
    public string Name { get; set; } 
    [XmlAttribute(AttributeName="Address")] 
    public string Address { get; set; } 
    [XmlAttribute(AttributeName="City")] 
    public string City { get; set; } 
    [XmlAttribute(AttributeName="State")] 
    public string State { get; set; } 
    [XmlAttribute(AttributeName="Zip")] 
    public string Zip { get; set; } 
    [XmlAttribute(AttributeName="Phone")] 
    public string Phone { get; set; } 
    [XmlAttribute(AttributeName="EarlyDateTime")] 
    public string EarlyDateTime { get; set; } 
    [XmlAttribute(AttributeName="ScheduledDateTime")] 
    public string ScheduledDateTime { get; set; } 
    [XmlAttribute(AttributeName="LateDateTime")] 
    public string LateDateTime { get; set; } 
    [XmlAttribute(AttributeName="AVSQuality")] 
    public string AVSQuality { get; set; } 
    [XmlAttribute(AttributeName="Latitude")] 
    public string Latitude { get; set; } 
    [XmlAttribute(AttributeName="Longitude")] 
    public string Longitude { get; set; } 
    [XmlAttribute(AttributeName="DispatchZoneFound")] 
    public string DispatchZoneFound { get; set; } 
    [XmlAttribute(AttributeName="Pieces")] 
    public string Pieces { get; set; } 
    [XmlAttribute(AttributeName="Weight")] 
    public string Weight { get; set; } 
} 

[XmlRoot(ElementName="Stops")] 
public class Stops { 
    [XmlElement(ElementName="Stop")] 
    public List<Stop> Stop { get; set; } 
} 

[XmlRoot(ElementName="Piece")] 
public class Piece { 
    [XmlAttribute(AttributeName="Sequence")] 
    public string Sequence { get; set; } 
    [XmlAttribute(AttributeName="Pieces")] 
    public string Pieces { get; set; } 
    [XmlAttribute(AttributeName="Weight")] 
    public string Weight { get; set; } 
    [XmlAttribute(AttributeName="Description")] 
    public string Description { get; set; } 
    [XmlAttribute(AttributeName="ContainerReference")] 
    public string ContainerReference { get; set; } 
    [XmlAttribute(AttributeName="Reference")] 
    public string Reference { get; set; } 
    [XmlAttribute(AttributeName="PieceID")] 
    public string PieceID { get; set; } 
} 

[XmlRoot(ElementName="Pieces")] 
public class Pieces { 
    [XmlElement(ElementName="Piece")] 
    public Piece Piece { get; set; } 
} 

[XmlRoot(ElementName="OrderEvent")] 
public class OrderEvent { 
    [XmlAttribute(AttributeName="EventType")] 
    public string EventType { get; set; } 
    [XmlAttribute(AttributeName="Note")] 
    public string Note { get; set; } 
    [XmlAttribute(AttributeName="Add")] 
    public string Add { get; set; } 
    [XmlAttribute(AttributeName="EventDateTime")] 
    public string EventDateTime { get; set; } 
    [XmlAttribute(AttributeName="UserName")] 
    public string UserName { get; set; } 
} 

[XmlRoot(ElementName="OrderEvents")] 
public class OrderEvents { 
    [XmlElement(ElementName="OrderEvent")] 
    public List<OrderEvent> OrderEvent { get; set; } 
} 

[XmlRoot(ElementName="Site")] 
public class Site { 
    [XmlAttribute(AttributeName="SiteID")] 
    public string SiteID { get; set; } 
    [XmlAttribute(AttributeName="CompanyID")] 
    public string CompanyID { get; set; } 
    [XmlAttribute(AttributeName="SiteCode")] 
    public string SiteCode { get; set; } 
    [XmlAttribute(AttributeName="SiteType")] 
    public string SiteType { get; set; } 
    [XmlAttribute(AttributeName="Name")] 
    public string Name { get; set; } 
    [XmlAttribute(AttributeName="DBAName")] 
    public string DBAName { get; set; } 
    [XmlAttribute(AttributeName="Address")] 
    public string Address { get; set; } 
    [XmlAttribute(AttributeName="City")] 
    public string City { get; set; } 
    [XmlAttribute(AttributeName="State")] 
    public string State { get; set; } 
    [XmlAttribute(AttributeName="Zip")] 
    public string Zip { get; set; } 
    [XmlAttribute(AttributeName="Message")] 
    public string Message { get; set; } 
    [XmlAttribute(AttributeName="ARAccountNumber")] 
    public string ARAccountNumber { get; set; } 
    [XmlAttribute(AttributeName="ARDeptNumber")] 
    public string ARDeptNumber { get; set; } 
    [XmlAttribute(AttributeName="APAccountNumber")] 
    public string APAccountNumber { get; set; } 
    [XmlAttribute(AttributeName="APDeptNumber")] 
    public string APDeptNumber { get; set; } 
    [XmlAttribute(AttributeName="BankAccountNumber")] 
    public string BankAccountNumber { get; set; } 
    [XmlAttribute(AttributeName="BankDeptNumber")] 
    public string BankDeptNumber { get; set; } 
    [XmlAttribute(AttributeName="DispatchNote")] 
    public string DispatchNote { get; set; } 
    [XmlAttribute(AttributeName="PaymentGatewayID")] 
    public string PaymentGatewayID { get; set; } 
    [XmlAttribute(AttributeName="MName")] 
    public string MName { get; set; } 
    [XmlAttribute(AttributeName="MAddress")] 
    public string MAddress { get; set; } 
    [XmlAttribute(AttributeName="MCity")] 
    public string MCity { get; set; } 
    [XmlAttribute(AttributeName="MState")] 
    public string MState { get; set; } 
    [XmlAttribute(AttributeName="MZip")] 
    public string MZip { get; set; } 
    [XmlAttribute(AttributeName="LogoImageID")] 
    public string LogoImageID { get; set; } 
    [XmlAttribute(AttributeName="SiteStatus")] 
    public string SiteStatus { get; set; } 
} 

[XmlRoot(ElementName="OrderFee")] 
public class OrderFee { 
    [XmlAttribute(AttributeName="FeeTitle")] 
    public string FeeTitle { get; set; } 
    [XmlAttribute(AttributeName="FeeCode")] 
    public string FeeCode { get; set; } 
} 

[XmlRoot(ElementName="OrderFees")] 
public class OrderFees { 
    [XmlElement(ElementName="OrderFee")] 
    public List<OrderFee> OrderFee { get; set; } 
} 

[XmlRoot(ElementName="Order")] 
public class Order { 
    [XmlElement(ElementName="Stops")] 
    public Stops Stops { get; set; } 
    [XmlElement(ElementName="Pieces")] 
    public Pieces Pieces { get; set; } 
    [XmlAttribute(AttributeName="Pieces")] 
    public string _Pieces { get; set; } 
    [XmlElement(ElementName="OrderEvents")] 
    public OrderEvents OrderEvents { get; set; } 
    [XmlElement(ElementName="Site")] 
    public Site Site { get; set; } 
    [XmlElement(ElementName="OrderFees")] 
    public OrderFees OrderFees { get; set; } 
    [XmlElement(ElementName="OrderNotifies")] 
    public string OrderNotifies { get; set; } 
    [XmlAttribute(AttributeName="Notes")] 
    public string Notes { get; set; } 
    [XmlAttribute(AttributeName="PackageTypeID")] 
    public string PackageTypeID { get; set; } 
    [XmlAttribute(AttributeName="Service")] 
    public string Service { get; set; } 
    [XmlAttribute(AttributeName="CallerPhone")] 
    public string CallerPhone { get; set; } 
    [XmlAttribute(AttributeName="CustomerCode")] 
    public string CustomerCode { get; set; } 
    [XmlAttribute(AttributeName="Caller")] 
    public string Caller { get; set; } 
    [XmlAttribute(AttributeName="CalledBy")] 
    public string CalledBy { get; set; } 
    [XmlAttribute(AttributeName="CheckPiecesWeight")] 
    public string CheckPiecesWeight { get; set; } 
    [XmlAttribute(AttributeName="ForceReRateFlag")] 
    public string ForceReRateFlag { get; set; } 
    [XmlAttribute(AttributeName="RouteNumber")] 
    public string RouteNumber { get; set; } 
    [XmlAttribute(AttributeName="OrderDate")] 
    public string OrderDate { get; set; } 
    [XmlAttribute(AttributeName="Auth")] 
    public string Auth { get; set; } 
    [XmlAttribute(AttributeName="Requestor")] 
    public string Requestor { get; set; } 
    [XmlAttribute(AttributeName="UserGUID")] 
    public string UserGUID { get; set; } 
    [XmlAttribute(AttributeName="GetUserGUIDDataCalledBy")] 
    public string GetUserGUIDDataCalledBy { get; set; } 
    [XmlAttribute(AttributeName="WebUserID")] 
    public string WebUserID { get; set; } 
    [XmlAttribute(AttributeName="UserName")] 
    public string UserName { get; set; } 
    [XmlAttribute(AttributeName="ChangeOps")] 
    public string ChangeOps { get; set; } 
    [XmlAttribute(AttributeName="OrderID")] 
    public string OrderID { get; set; } 
    [XmlAttribute(AttributeName="OrderGUID")] 
    public string OrderGUID { get; set; } 
    [XmlAttribute(AttributeName="Origin")] 
    public string Origin { get; set; } 
    [XmlAttribute(AttributeName="OrderNumber")] 
    public string OrderNumber { get; set; } 
    [XmlAttribute(AttributeName="OrderDateTime")] 
    public string OrderDateTime { get; set; } 
    [XmlAttribute(AttributeName="CreateDate")] 
    public string CreateDate { get; set; } 
    [XmlAttribute(AttributeName="DimWeightFactor")] 
    public string DimWeightFactor { get; set; } 
    [XmlAttribute(AttributeName="Weight")] 
    public string Weight { get; set; } 
    [XmlAttribute(AttributeName="RouteZone")] 
    public string RouteZone { get; set; } 
    [XmlAttribute(AttributeName="CustomerGroup")] 
    public string CustomerGroup { get; set; } 
    [XmlAttribute(AttributeName="ServiceID")] 
    public string ServiceID { get; set; } 
    [XmlAttribute(AttributeName="TotalMiles")] 
    public string TotalMiles { get; set; } 
    [XmlAttribute(AttributeName="AmountCharged")] 
    public string AmountCharged { get; set; } 
    [XmlAttribute(AttributeName="DriverPayXML")] 
    public string DriverPayXML { get; set; } 
    [XmlAttribute(AttributeName="CarrierTypeID")] 
    public string CarrierTypeID { get; set; } 
    [XmlAttribute(AttributeName="DueDateTime")] 
    public string DueDateTime { get; set; } 
    [XmlAttribute(AttributeName="PickedUpDateTime")] 
    public string PickedUpDateTime { get; set; } 
    [XmlAttribute(AttributeName="DeliveredDateTime")] 
    public string DeliveredDateTime { get; set; } 
    [XmlAttribute(AttributeName="OperationalStatus")] 
    public string OperationalStatus { get; set; } 
    [XmlAttribute(AttributeName="saveorderpieceactionstatus")] 
    public string Saveorderpieceactionstatus { get; set; } 
    [XmlAttribute(AttributeName="AmountChargedChanged")] 
    public string AmountChargedChanged { get; set; } 
} 

[XmlRoot(ElementName="Body", Namespace="http://schemas.xmlsoap.org/soap/envelope/")] 
public class Body { 
    [XmlElement(ElementName="Order")] 
    public Order Order { get; set; } 
} 

[XmlRoot(ElementName="Envelope", Namespace="http://schemas.xmlsoap.org/soap/envelope/")] 
public class Envelope { 
    [XmlElement(ElementName="Body", Namespace="http://schemas.xmlsoap.org/soap/envelope/")] 
    public Body Body { get; set; } 
    [XmlAttribute(AttributeName="SOAP", Namespace="http://www.w3.org/2000/xmlns/")] 
    public string SOAP { get; set; } 
} 

我的代碼:

// str中響應XML

XmlSerializer serializer = new XmlSerializer(typeof(SaveResponseObject.Envelope)); 
     using (TextReader reader = new StringReader(str)) 
     { 
      SaveResponseObject.Envelope result = (SaveResponseObject.Envelope)serializer.Deserialize(reader); 
     } 
+1

製作的命名空間:[XmlRoot(的ElementName = 「訂單」,命名空間= 「」)] – jdweng

+0

@jdweng所做的更改爲[XmlRoot(的ElementName = 「訂單」,命名空間= 「」)] public類訂單{}但是同樣的問題 –

+0

@jdweng它的工作原理 –

回答

1

將Namespace =「」添加到Body類中的Order屬性。應該可以。訂單

[XmlRoot(ElementName = "Body", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")] 
public class Body 
{ 
    [XmlElement(ElementName = "Order", Namespace = "")] 
    public Order Order { get; set; } 
} 
0

使用該屬性來裝點過訂單

[XmlElement(ElementName = "Order", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]