Wie man XMLDOMDocument gehören die XML-Deklaration?
Wenn ein XMLDOMDocument rettet sich, wie ich es bekommen kann, gehören die XML-Deklaration, z.B.:
<?xml version="1.0" encoding="UTF-8" ?>
<?xml version="1.0" encoding="UTF-16" ?>
<?xml version="1.0" encoding="UCS-2" ?>
<?xml version="1.0" encoding="UCS-4" ?>
<?xml version="1.0" encoding="ISO-10646-UCS-2" ?>
<?xml version="1.0" encoding="UNICODE-1-1-UTF-8" ?>
<?xml version="1.0" encoding="UNICODE-2-0-UTF-16" ?>
<?xml version="1.0" encoding="UNICODE-2-0-UTF-8" ?>
<?xml version="1.0" encoding="US-ASCII" ?>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml version="1.0" encoding="WINDOWS-1250" ?>
Den XMLDOMDomcument Objekt im Speicher erstellt wurde (d.h. die xml nicht geladen werden von einigen externen Quelle):
{
IXMLDOMDocument2 doc = new DOMDocument60();
//add nodes to the doc
...
doc.Save(saveTarget);
}
Ohne die xml-Deklaration erhalten Sie nur den Körper xml, z.B.:
<Customer>
...
</Customer>
anstatt das vollständige XML-Dokument:
<?xml version="1.0" encoding="US-ASCII" ?>
<Customer>
...
</Customer>
Frage 2
Wie kann ich das die Codierung der XMLDOMDocument verwenden, wenn Sie es spart auf einen stream???
Was die Sprache und die Plattform verwenden Sie? Welche version von MSXML?
InformationsquelleAutor Ian Boyd | 2009-07-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie eine MXXMLWriter60, anstatt es zu speichern direkt. Leider habe ich nicht ein C# - Beispiel, aber hier ist die VB.Net entspricht. Sehen IMXWriter für details.
Dies funktioniert so angezeigt, aber wenn ich versuche, die Ausgabe mit wrt.encoding = "UTF-16" die byte-Reihenfolge-Markierung nicht angezeigt wird, so ist es nicht "wirklich" UTF-16.... was bin ich?
Ich bin mir nicht sicher, warum nicht, aber versuchen Sie nicht, die Einstellung der
wrt.encoding
überhaupt. Der Standardwert ist zu tun, UTF-16. Aber auch, wie haben Sie festgestellt, dass die BOM fehlt? Einige Editoren und Viewer-verstecken von Euch...Anscheinend hast du Recht, und ich eigentlich nie getestet code. Ich habe gerade trusted, dass die Angabe
writer.byteOrderMark = true
würde ihn schreiben Sie den Byte Order Mark. Heute habe ich bemerkt das BOM fehlt. So ich habe in der Dokumentation. EinstellungbyteOrderMark
auf false bewirkt, dass es zu unterdrücken, das schreiben der BOM. EinstellungbyteOrderMark
auf true bewirkt, dass es Folgen Sie den XML-standard in Bezug auf, ob die Stückliste aufgenommen werden sollen. XML-Spezifikation nicht sagen, ob/Wann eine Stückliste enthalten sein sollten.Die Dokumentation sagt, dass
encoding
wird ignoriert, wenn die Ausgabe ist ein string, msdn.microsoft.com/en-us/library/ms756020%28v=vs.85%29.aspx.InformationsquelleAutor lavinio
Hier ist eine der dasselbe in c++
...und benötigen Sie einen geeigneten IStream...
...und ein Erklärung, was Los ist.
InformationsquelleAutor phreed
Sollten Sie in der Lage zu erreichen, die gleiche Sache, indem Sie mit der CreateProcessingInstruction Methode.
Beispiel;
InformationsquelleAutor Brent
Hier ist das gleiche in Delphi:
Und eine version von schreiben in einen stream:
InformationsquelleAutor Ian Boyd
C++:
Weil, im ernst, die richtige Lösung ist ein Witz...
InformationsquelleAutor Florian Winter