2016-10-13 4 views
0

Я следующий объектную модельУдаление дополнительного узла в сериализации объекта XML

public class BIDbObject 
{ 
    // some methods and properties here 

    public BIDbColumns DbColumns { get; set; } 
} 

[XmlRoot("root")] 
public class BIDbObjects 
{ 
    // some methods and properties here 

    [XmlArray("dbobjects")] 
    [XmlArrayItem("dbobject")] 
    public List<BIDbObject> DbObjects { get; set; } 
} 

public class BIDbColumn 
{ 
    // some methods and properties here 

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

public class BIDbColumns 
{ 
    // some methods and properties here 

    [XmlArray("columns")] 
    [XmlArrayItem("column")] 
    public List<BIDbColumn> DbColumns { get; set; } 
} 

сериализовать BIDbObjects класс и получить ниже XML

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <dbobjects> 
    <dbobject database="Crius" schema="dbo" name="rptAgedPhase3ColLoginReceived" type="T"> 
     <DbColumns> 
     <columns> 
      <column name="LoanNum" /> 
      <column name="BACLOAN_ID" /> 
      <column name="Unfunded" /> 
      <column name="RoutingType" /> 
      <column name="DivAbbrev" /> 
      <column name="BranchNum" /> 
      <column name="BranchSatelliteNum" /> 
      <column name="ClosedCd" /> 
      <column name="AS400PhaseCd" /> 
      <column name="RgnNum" /> 
      <column name="ReceivedDt" /> 
      <column name="TreasBankPortfolioFlagBit" /> 
      <column name="TreasBankDestType" /> 
      <column name="TreasuryBankDestTypeDesc" /> 
     </columns> 
     </DbColumns> 
    </dbobject> 
    ........ 

Мне нужно избавиться от DbColumns в XML

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <dbobject database="Crius" schema="dbo" name="rptAgedPhase3ColLoginReceived" type="T"> 
    <DbColumns> <---- this one 
     <columns> 
     ..... 

Предпочтительно использовать атрибуты XML. Спасибо за помощь!

+1

Измените [XmlArray ("columns")] на [XmlElement ("columns")]. Вам не нужен XmlArrayItem. – jdweng

+0

Спасибо, сэр, я почти здесь. Как я могу сделать это для хранения вместо ? – FLICKER

+0

, если вы разместите свой ответ, я помету его. Спасибо! – FLICKER

ответ

0

В итоге я получил изменения ниже. Я размещаю его здесь для будущих ссылок. Спасибо @jdweng за помощью.

public class BIDbObject 
{ 
    // some methods and properties here 

    [XmlElement("columns")] 
    public BIDbColumns DbColumns { get; set; } 
} 

[XmlRoot("root")] 
public class BIDbObjects 
{ 
    // some methods and properties here 

    [XmlArray("dbobjects")] 
    [XmlArrayItem("dbobject")] 
    public List<BIDbObject> DbObjects { get; set; } 
} 

public class BIDbColumn 
{ 
    // some methods and properties here 

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

public class BIDbColumns 
{ 
    // some methods and properties here 

    [XmlElement("column")] 
    public List<BIDbColumn> DbColumns { get; set; } 
} 
Смежные вопросы