5

Odtwarzanie za pomocą interfejsu API WWW z programem Framework 4.0 Poszukiwany format XML, tak więc usunięto formater JSON z kolekcji formaterów. Teraz chciałbym zmodyfikować standard XML, że XMLSerializer jest wyprowadzanie:Niestandardowe wyjście XML?

<?xml version="1.0"?> 
-<ArrayOfCategory xmlns:xsd="http://www.w3.org/2001/XMLSchema"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">- 
    <Category> 
    <Id>1</Id> 
    <Name>Drink</Name> 
    </Category>- 
    <Category> 
    <Id>2</Id> 
    <Name>Snack</Name> 
    </Category> 
</ArrayOfCategory> 

chciałbym zmienić węzeł „Arrayof” powiedzieć coś bardziej znaczące, a trzeba dodać jeszcze kilka węzłów (z dodatkowymi informacjami) nad węzłem "Arrayof".

Czy istnieje prosty sposób na zrobienie tego? lub czy muszę napisać niestandardowy formater/seralizer?

+0

Czy to po prostu niemożliwe? Czy może brakuje mi czegoś oczywistego? czy jest tak nowy, nikt nie zna jeszcze rozwiązania? GOT to sposób na dostosowanie domyślnych danych wyjściowych. – user1771591

Odpowiedz

7

Chciałbym zmienić węzeł „Arrayof” powiedzieć coś bardziej znaczące, a trzeba dodać jeszcze kilka węzłów (z dodatkowymi informacjami) powyżej węzła „Arrayof”.

Jeśli chcesz tego rodzaju dostosowanie swojej XML, należy użyć do XmlSerializer zamiast DataContractSerializer, który jest używany domyślnie w XmlFormatter.

config.Formatters.XmlFormatter.UseXmlSerializer = true; 

Następnie można owinąć zbiór kategorii w klasie i używać [XmlRoot], [XmlElement] i [XmlArray], aby dostosować nazwę elementu. Oto przykład:

[XmlRoot(ElementName = "node")] 
public class Node 
{ 
    [XmlElement(ElementName= "SomeInfo")] 
    public string Node1; 

    [XmlElement(ElementName = "OtherInfo")] 
    public string Node2; 

    [XmlArray("Categories")] 
    public List<Category> CatList; 
} 

Więcej informacji można znaleźć w tym artykule MSDN: Controlling XML Serialization Using Attributes.

+0

Dzięki, Maggie. Już przełączyłem się na XMLSerializer. Właśnie znalazłem przykład, aby to zrobić. Ale dzięki za odpowiedź! – user1771591