Aquí hay un ejemplo ficticio del problema que intento resolver. Si estoy trabajando en C#, XML y tienen la siguiente manera:Cómo deserializar solo parte de un documento XML en C#
<?xml version="1.0" encoding="utf-8"?>
<Cars>
<Car>
<StockNumber>1020</StockNumber>
<Make>Nissan</Make>
<Model>Sentra</Model>
</Car>
<Car>
<StockNumber>1010</StockNumber>
<Make>Toyota</Make>
<Model>Corolla</Model>
</Car>
<SalesPerson>
<Company>Acme Sales</Company>
<Position>
<Salary>
<Amount>1000</Amount>
<Unit>Dollars</Unit>
... and on... and on....
</SalesPerson>
</Cars>
el XML dentro vendedor puede ser muy largo, megabytes de tamaño. Quiero deserializar la etiqueta, , pero no deserializar el elemento XML de SalesPerson, sino mantenerlo en formato sin formato "para más adelante".
Esencialmente, me gustaría poder utilizar esto como una representación de Objetos del XML.
[System.Xml.Serialization.XmlRootAttribute("Cars", Namespace = "", IsNullable = false)]
public class Cars
{
[XmlArrayItem(typeof(Car))]
public Car[] Car { get; set; }
public Stream SalesPerson { get; set; }
}
public class Car
{
[System.Xml.Serialization.XmlElementAttribute("StockNumber")]
public string StockNumber{ get; set; }
[System.Xml.Serialization.XmlElementAttribute("Make")]
public string Make{ get; set; }
[System.Xml.Serialization.XmlElementAttribute("Model")]
public string Model{ get; set; }
}
donde la propiedad SalesPerson en el objeto Coches contendría una corriente con el XML sin procesar que se encuentra dentro del SalesPerson > elemento XML < después de haber sido dirigido a través de un XmlSerializer.
se puede hacer esto? ¿Puedo elegir deserializar solo "parte de" un documento xml?
Gracias! -Mike
p.s. ejemplo xml robado de How to Deserialize XML document
Gran solución, sin embargo, encontré que también necesitaba establecer la raíz xml del fragmento para evitar una excepción con una excepción interna que decía ... xmlns = ''> no se esperaba. Agregué otra respuesta para mi solución, debido a los límites de longitud de los comentarios. –