C# - Objekt, um XML
Bin ich erstellen, eine Anwendung, die erfordert, um das konvertieren von c# - Objekt in XML.
Bin ich mit dem XML-Serializer-Klasse zu erreichen. Hier ist der Codeausschnitt:
public class Anwer
{
public int ID { get; set; }
public string XML { get; set; }
public Anwer(int ID, string XML)
{
this.ID = ID;
this.XML = XML;
}
public Anwer() { }
}
Hier ist die main-Funktion:
string AnswerXML = @"<Answer>1<Answer>";
List<Anwer> answerList = new List<Anwer>();
answerList.Add(new Anwer(1,AnswerXML));
AnswerXML = @"<Answer>2<Answer>";
answerList.Add(new Anwer(2, AnswerXML));
XmlSerializer x = new XmlSerializer(answerList.GetType());
x.Serialize(Console.Out, answerList);
Ausgabe:
<?xml version="1.0" encoding="IBM437"?>
<ArrayOfAnwer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="h
ttp://www.w3.org/2001/XMLSchema">
<Anwer>
<ID>1</ID>
<XML><Answer>1<Answer></XML>
</Anwer>
<Anwer>
<ID>2</ID>
<XML><Answer>2<Answer></XML>
</Anwer>
</ArrayOfAnwer>
Im obigen code '<' und '>', werden immer ersetzt durch '<' und '>';
Wie um dies zu vermeiden?
Ich weiß, string ersetzen ist eine Möglichkeit, aber ich will nicht, es zu benutzen.
Vielen Dank im Voraus.
Aaaaaannnnddddd die Frage ist......
Sie werden durch die definition...
Kennen Sie die xml-geben Sie es nicht xml, btw?
halten Sie alle Ihre xml-Code in strings! genial! warum habe ich nicht daran gedacht?
Sie werden durch die definition...
Kennen Sie die xml-geben Sie es nicht xml, btw?
halten Sie alle Ihre xml-Code in strings! genial! warum habe ich nicht daran gedacht?
InformationsquelleAutor Amit Shah | 2010-12-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht, im Grunde. Das ist richtig mit der Serialisierung der Objekt - in die XML-serializer nicht wollen, zu haben, um mit XML innerhalb von Zeichenfolgen messing Dinge, so entgeht der XML entsprechend.
Wenn Sie Deserialisieren des XML-später werden Sie wieder auf das ursprüngliche Objekt Daten.
Wenn Sie versuchen, den Aufbau eines XML-Dokuments in ein custom-Mode, ich schlage vor, Sie verwenden keine XML-Serialisierung, mit zu beginnen. Entweder Verwendung von LINQ to XML, wenn Sie zufrieden sind, erstellen, Elemente usw, ausdrücklich, oder, wenn Sie wirklich, wirklich wollen, gehören beliebige strings direkt in den Ausgang, verwenden Sie
XmlWriter
.Wenn könnten Sie uns mehr Informationen über das große Bild von dem, was Sie zu tun versuchen, können wir vielleicht bessere alternativen vorschlagen - building-XML-strings direkt ist fast nie eine gute Idee.
Sehr gut, so dass es zu serialisieren, wie Sie tun, und später kann man deserialisiert es und Sie werden die gleichen Daten. Was ist das problem?
InformationsquelleAutor Jon Skeet
XmlSerializer
nicht glauben Sie, dass ein element ist xml, es sei denn, Sie überzeugen, dass es, zum Beispiel, indem Sie die Eigenschaft alsXmlDocument
. Ansonsten ist es (richtig, IMO) immer kodiert diese Werte. Zum Beispiel:InformationsquelleAutor Marc Gravell
Wenn Sie mit der XML-Serialisierung, die die Arbeit machen, warum dann das "XML" - Feld, wo man das einfügen von hand codierte XML? Scheint, wie Sie etwas mehr wollen wie dies (mit Ihrer Klasse name, obwohl es sieht aus wie ein Rechtschreibfehler):
Oder wenn Sie wirklich wollen/brauchen, das Antwort-element verschachtelt werden und in einem XML-element aus irgendeinem Grund, können Sie ändern Sie Ihre Antwort Objekt zu reflektieren, die Struktur (als Oleg Kalenchuk vermuten lässt), oder erstellen Sie die XML-sich selbst, anstatt mit den serializer:
Ich bevorzuge letzteres sowieso, denn es gibt Ihnen mehr Kontrolle.
InformationsquelleAutor Mud
Du bist die Zuweisung einer Zeichenfolge, die < und > Zeichen in das XML-element, so ist es offensichtlich, dass der serializer ersetzen würden, die < und > mit entity-Referenzen. Auch wenn Sie immer > in den text, wenn Sie deserialise die XML bekommst du die > in deinem text.
InformationsquelleAutor Raj
InformationsquelleAutor Oleg Kalenchuk
Da '<' und '>' - Zeichen für die xml-Struktur selbst, Sie werden automatisch htmlencoded. Wenn Sie es Lesen, zurück in Ihre app und Deserialisieren, die
'<'
und'>
' konvertiert werden soll zurück zu '<' und '>'.Wenn Ihr Ziel ist, andernfalls verwenden Sie htmldecode Funktionalität.
Wenn diese nicht helfen, nur sagen, was genau Sie wollen zu tun, mit der xml-Daten.
InformationsquelleAutor Peter