【发布时间】:2018-06-22 20:36:20
【问题描述】:
我有一个表示发票的复杂 XML。
我需要使用 .NET Core 和XmlSerializer 生成如下 XML 结构:
<DetalleServicio>
<LineaDetalle>
ALL MY VALUES HERE
</LineaDetalle>
<LineaDetalle>
MY VALUES HERE
</LineaDetalle>
</DetalleServicio>
如您所见,DetalleServicio 可以包含很多 LineaDetalle 子代。
我正在尝试使用一些类来完成这项工作,所以我有:
public class DetalleServicio
{
public List<LineaDetalle> LineaDetalle { get; set; }
}
和
public class LineaDetalle
{
public int NumeroLinea { get; set; }
public CodigoProducto[] Codigo { get; set; }
public decimal Cantidad { get; set; }
public string UnidadMedida { get; set; }
public string UnidadMedidaComercial { get; set; }
public string Detalle { get; set; }
public decimal PrecioUnitario { get; set; }
public decimal MontoTotal { get; set; }
public decimal MontoDescuento { get; set; }
public string NaturalezaDescuento { get; set; }
public decimal SubTotal { get; set; }
public Impuesto Impuesto { get; set; }
public decimal MontoTotalLinea { get; set; }
}
Finally I'm doing something like this
DetalleServicio = new DetalleServicio()
{
LineaDetalle = new List<LineaDetalle>()
{
new LineaDetalle()
{
},
new LineaDetalle()
{
}
}
}
最后我们使用XmlSerializer 生成我们的XML,但问题是XmlSerializer 将LineaDetalle 写入父级,LineaDetalle 写入子级,例如:
<DetalleServicio>
<LineaDetalle>
<LineaDetalle>
ALL MY VALUES HERE
</LineaDetalle>
<LineaDetalle>
MY VALUES HERE
</LineaDetalle>
</LineaDetalle>
</DetalleServicio>
我该如何解决这个问题?我尝试使用XmlDocument 删除父节点<LineaDetalle>,但它会引发“cs0 ...”错误。
【问题讨论】: