Oto fikcyjny przykład problemu, który próbuję rozwiązać. Jeśli pracuję w C# i mają XML jak poniżej:Jak deserializować tylko część dokumentu XML w języku 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>
XML wewnątrz sprzedawca może być bardzo długi, megabajtów. Chcę deserializować tag, , ale nie deserializacji elementu SalesPerson XML zamiast utrzymywania go w surowej postaci "na później".
Zasadniczo chciałbym móc użyć tego jako reprezentacji obiektów 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; }
}
których właściwość Salesperson na obiekcie wozy zawiera strumień z surowego XML, który jest w sprzedawca > elementu < xml, po czym przepuszczano przez XmlSerializer.
Czy to można zrobić? Czy mogę wybrać tylko deserializację "części" dokumentu xml?
Dzięki! -Mike
p.s. przykład xml ukradziony od How to Deserialize XML document
Doskonałe rozwiązanie, znalazłem jednak, że muszę ustawić xml root fragmentu, aby uniknąć wyjątku z wewnętrznym wyjątkiem mówiącym ... xmlns = ''> nie był oczekiwany. Dodałem kolejną odpowiedź na moje rozwiązanie, ze względu na ograniczenia długości komentarza. –