我想重現這個 xml 結構:
...
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="RSD">5000</cbc:LineExtensionAmount>
</cac:LegalMonetaryTotal>
...
當我在類中有非復雜屬性時它可以作業LegalMonetaryTotal,但是為了放置 XmlAttributecurrencyId我被迫創建而不是十進制欄位:
[XmlElement(Namespace = Constants.CbcNamespace)]
public decimal? LineExtensionAmount { get; set; }
我建立:
[XmlType(Namespace = Constants.CbcNamespace)]
public class LineExtensionAmountDto
{
/// <summary>
/// LineExtensionAmount
/// </summary>
[XmlElement(Namespace = Constants.CbcNamespace)]
public decimal? Amount { get; set; } = 54545;
/// <summary>
/// CurrencyID
/// </summary>
[XmlAttribute("currencyID")]
public string? CurrencyID { get; set; } = "RSD";
}
我得到了錯誤的輸出:
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="RSD">
<cbc:Amount>5000</cbc:Amount>
</cbc:LineExtensionAmount>
</cac:LegalMonetaryTotal>
如您所見,xml 屬性位于正確的位置,但我需要洗掉Amount節點,并將值呈現上一層,如下所示:
<cbc:LineExtensionAmount currencyID="RSD"> 1000 </cbc:LineExtensionAmount>
我試圖把[XmlText]但它可以一起作業[XmlAttribute]
uj5u.com熱心網友回復:
該XmlText屬性不能應用于可為空的值型別。
這是可以作業的課程:
[XmlType(Namespace = Constants.CbcNamespace)]
public class LineExtensionAmountDto
{
[XmlText]
public decimal Amount { get; set; }
[XmlAttribute("currencyID")]
public string? CurrencyID { get; set; }
}
請參閱解決方法:https ://stackoverflow.com/a/28110988/5045688
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/512762.html
標籤:C#xml
