XML-Serialisierung - Namespace entfernen
Bin ich mit der Serialisierung wird ein Objekt mit c#. Ich bin immer in diesem format gegeben Balg
<?xml version="1.0"?>
<Users xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Users>
<User Id="11005477969327" CreateDate="06/03/2011" LastSendDate="1/1/0001" />
<User Id="11034688201594" CreateDate="04/22/2012" LastSendDate="1/1/0001" />
<Users
</User>
Aber ich will das Ergebnis in diesem format.
<?xml version="1.0"?>
<Users>
<User Id="11005477969327" SendDate="1/1/0001" NextSendDate="2/7/2012 11:13:30 AM" />
<User Id="11034688201594" SendDate="1/1/0001" NextSendDate="2/7/2012 11:13:30 AM" />
</Users>
hier mein code
public class Users
{
[XmlArray("Users")]
public List<User> ListData { get; set; }
public string GetXML()
{
System.IO.MemoryStream ms = new System.IO.MemoryStream();
XmlSerializer sr = new XmlSerializer(typeof(Users));
sr.Serialize(ms, this);
ms.Position = 0;
return System.Text.Encoding.UTF8.GetString(ms.ToArray());
}
}
public class User
{
[XmlAttribute("Id")]
public Int64 UserId { get; set; }
[XmlAttribute("CreateDate")]
public string CreateDate { get; set; }
[XmlAttribute("LastSendDate")]
public string LastSendDate { get; set; }
}
InformationsquelleAutor der Frage Pankaj | 2011-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie Sie einfach ersetzen
[XmlArray("Users")]
mit[XmlElement("User")]
Dieses Attribut sagen, serializer, die Sie speichern wollen, die alle User-Elemente, die unter bestimmten Knoten "Benutzer", wenn Sie ersetzen Sie es mit
XmlElement
serialzer speichert alle Benutzer, inline (direkt unter den ersten Benutzer-tag) so wie es dir gefällt.Als für
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
namespaces. Sie werden automatisch Hinzugefügt, aber Sie sind harmlos, da alle Ihre Elemente sind in den Standard-namespace. Sie können fügen Sie folgenden code zu IhrerXmlSerializer
anrufen, um zu entfernen, die:InformationsquelleAutor der Antwort Vladimir Perevalov
Sollten Sie schreiben:
InformationsquelleAutor der Antwort Renat Seyfetdinov
Quickie-Lösung - konvertieren zu einem string entfernen und dann so -
Verwendet eine Schaltfläche klicken, starten Sie die Ausführung.
InformationsquelleAutor der Antwort David Rice