剛剛提的是正確的XML應該是這個樣子:
<?xml version="1.0" encoding="UTF-8"?>
<GetBooking Nmbr="0015151001" Identifier="1771C9A911E98" Version="2006.01" Token="11868765" xmlns:f="http://www.w3.org/TR/html4/" xmlns:ns2="http://www.google.com/india">
<f:Reservation>
<f:Extensions>
<ns2:ReservationExt >
<ns2:ExtPayTxInfo>
<ns2:ReferenceID>35775726</ns2:ReferenceID>
<ns2:QueryRPH>35775726NI10054145950</ns2:QueryRPH>
<ns2:Status>1</ns2:Status>
<ns2:Amount>17.85</ns2:Amount>
<ns2:Code>9</ns2:Code>
<ns2:TxStatus>1</ns2:TxStatus>
<ns2:Timestamp>2014-09-10T05:41:45</ns2:Timestamp>
<ns2:EndTimestamp>2014-09-10T05:41:45</ns2:EndTimestamp>
</ns2:ExtPayTxInfo>
</ns2:ReservationExt>
</f:Extensions>
</f:Reservation>
<f:Success/>
</GetBooking>
這將導致波科
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class GetBooking
{
[System.Xml.Serialization.XmlElementAttribute(Namespace = "http://www.w3.org/TR/html4/")]
public Reservation Reservation { get; set; }
[System.Xml.Serialization.XmlElementAttribute(Namespace = "http://www.w3.org/TR/html4/")]
public object Success { get; set; }
[System.Xml.Serialization.XmlAttributeAttribute()]
public uint Nmbr { get; set; }
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Identifier { get; set; }
[System.Xml.Serialization.XmlAttributeAttribute()]
public decimal Version { get; set; }
[System.Xml.Serialization.XmlAttributeAttribute()]
public uint Token { get; set; }
}
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.w3.org/TR/html4/")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://www.w3.org/TR/html4/", IsNullable = false)]
public partial class Reservation
{
public ReservationExtensions Extensions { get; set; }
}
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.w3.org/TR/html4/")]
public partial class ReservationExtensions
{
[System.Xml.Serialization.XmlElementAttribute(Namespace = "http://www.google.com/india")]
public ReservationExt ReservationExt { get; set; }
}
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.google.com/india")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://www.google.com/india", IsNullable = false)]
public partial class ReservationExt
{
public ReservationExtExtPayTxInfo ExtPayTxInfo { get; set; }
}
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.google.com/india")]
public partial class ReservationExtExtPayTxInfo
{
public uint ReferenceID { get; set; }
public string QueryRPH { get; set; }
public byte Status { get; set; }
public decimal Amount { get; set; }
public byte Code { get; set; }
public byte TxStatus { get; set; }
public DateTime Timestamp { get; set; }
public DateTime EndTimestamp { get; set; }
}
在這種情況下
GetBooking booking;
if (xmlstring.Deserialize(out booking))
{
decimal value = booking.Reservation.Extensions.ReservationExt.ExtPayTxInfo.Amount;
//do something with the value
}
裁判:deserialize
在參考文獻中找不到「Descendant」。 – Shaggy 2014-09-11 07:04:25
@Shaggy,哎呀!糾正了這一點。 – 2014-09-11 07:10:41
爲什麼兩個'..'進入? – Shaggy 2014-09-11 07:18:47