簡體   English   中英

關於.net中的XML反序列化的問題

[英]Question about XML deserialization in .net

我正在嘗試反序列化來自Web服務的XML,但我不知道如何告訴序列化程序如何處理這段xml:

<Movimientos>
<Movimientos>
<NOM_ASOC>pI22E7P30KWB9KeUnI+JlMRBr7biS0JOJKo1JLJCy2ucI7n3MTFWkY5DhHyoPrWs</NOM_ASOC>
<FEC1>RZq60KwjWAYPG269X4r9lRZrjbQo8eRqIOmE8qa5p/0=</FEC1>
<IDENT_CLIE>IYbofEiD+wOCJ+ujYTUxgsWJTnGfVU+jcQyhzgQralM=</IDENT_CLIE>
</Movimientos>
<Movimientos>

正如您所看到的,子標記使用與其父標記相同的標記,我認為這是錯誤的,但是Web服務是由外部公司提供的並且不會更改它,是否有任何方式或任何庫來整理XML或者如何我在我的類上使用了一個屬性,以便序列化器能夠正確使用它? 謝謝你的幫助。

序列化程序應該沒問題 - 問題可能只是一個類不能擁有與類本身同名的屬性。 所以使用XmlElementAttribute來匹配它:

[XmlRoot("Movimientos")]
public class Movimientos
{
    [XmlElement("Movimientos")]
    public SomeOtherClass SomeOtherProperty { get; set; }
}

public class SomeOtherClass
{
    public string NOM_ASOC { get; set; }
    public string FEC1 { get; set; }
    public string IDENT_CLIE { get; set; }
}

僅供參考,XML實際上並沒有錯; 規范中沒有規則說子元素不能與其父元素具有相同的名稱。 這可能是不尋常的,但仍然有效。

如果這不是由.Net的XML序列化程序實際反序列化的,那么編寫自己的類來解析它可能會更好。 您可以使用System.Xml或System.Xml.Linq(更簡單)命名空間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM