2017-04-19 207 views
2

我想Deserilize以下XMLXML反對反序列化

-<Tables> 


    -<StaticGroups> 


     -<StaticGroup Name="111"> 


      -<Table> 

       <TableName>Table1 Name</TableName> 

       <TableTag>Table1 Tag</TableTag> 

      </Table> 
      -<StaticGroup Name="111.1"> 


       -<Table> 

        <TableName>Table1.1 Name</TableName> 

        <TableTag>Table1.1 Tag</TableTag> 

       </Table> 
      </StaticGroup> 
     </StaticGroup> 
    </StaticGroups>  
</Tables> 

嵌套StaticGroup的名稱=「111.1」不反序列化時由於某些原因。

的類都低於

[XmlRoot("Tables")] 
    public class TablesXML 
    { 
     public TablesXML() 
     { 
      StaticTablesGroups = new List<StaticTablesGroup>(); 
     } 


     [XmlArray("StaticGroups")] 
     [XmlArrayItem("StaticGroup", typeof(StaticTablesGroup))] 
     public List<StaticTablesGroup> StaticTablesGroups { get; set; } 

    } 

    public class StaticTablesGroup 
    { 
     public StaticTablesGroup() 
     { 
      GroupTables = new List<GroupTable>(); 
      StaticTablesGroups = new List<StaticTablesGroup>(); 
     } 

     [XmlAttribute("Name")] 
     public string Name { get; set; } 

     //[XmlArray("StaticGroup")] 
     [XmlElement("Table", typeof(GroupTable))] 
     public List<GroupTable> GroupTables { get; set; } 


     [XmlElement("StaticGroup")] 
     public List<StaticTablesGroup> StaticTablesGroups { get; set; } 
    } 
    public class GroupTable 
    { 

     [XmlElement("TableName")] 
     public string Name { get; set; } 
     [XmlElement("TableTag")] 
     public string Tag { get; set; } 


    } 

與NAME = 「111」 成功反序列化第一StaticGroup的,但嵌套StaticGroup的wihth NAME = 「111.1」 不

我在做什麼錯。請幫助

+0

我無法重現您的問題。也許你也應該發佈反序列化代碼。 – TnTinMn

回答

1

如果您的問題與反序列化有關,那麼發佈您的反序列化代碼可能是一個想法,您不覺得嗎?

無論如何,這正常工作對我來說:

string xml = "<Tables><StaticGroups><StaticGroup Name=\"111\"><Table><TableName>Table1 Name</TableName><TableTag>Table1 Tag</TableTag></Table><StaticGroup Name=\"111.1\"><Table><TableName>Table1.1 Name</TableName><TableTag>Table1.1 Tag</TableTag></Table></StaticGroup></StaticGroup></StaticGroups></Tables>"; 
XmlSerializer serializer = new XmlSerializer(typeof(TablesXML)); 
TablesXML tablesXml; 
using (TextReader reader = new StringReader(xml)) 
{ 
    tablesXml = (TablesXML)serializer.Deserialize(reader); 
} 
+0

您絕對正確。實際的問題是在XAML樹視圖演示文稿中沒有顯示嵌套組。非常感謝您的幫助。如何在TreeView HierarchicalDataTemplate中指定在設計時如果有多少嵌套組存在未知

+0

請問一個新的問題,如果你有另一個問題。 – mm8

0

我認爲你缺少結束標記</Tables>

編輯:您可以隨時驗證XML發現問題...快速谷歌搜索,我發現this one被控同樣的問題

+0

格式問題,標記爲XML – Vadim

0

您錯過了「Tables」的關閉語句-XML對象

+0

格式問題,標記爲XML – Vadim