Wie füge ich eine benutzerdefinierte XmlDekde mit XmlDocument/XmlDeclaration hinzu?

Ich möchte eine benutzerdefinierte XmlDeclaration erstellen, während ich die XmlDocument/XmlDeclaration-Klassen in c .net 2 oder 3 verwende.

Dies ist meine gewünschte Ausgabe (es ist eine erwartete Ausgabe durch eine Drittanbieter-App):

<?xml version="1.0" encoding="ISO-8859-1" ?>
<?MyCustomNameHere attribute1="val1" attribute2="val2" ?>
[ ...more xml... ]

Mit den XmlDocument/XmlDeclaration-Klassen, kann ich nur eine einzelne XmlDekmitmit mit einem definierten Satz von Parametern erstellen:

XmlDocument doc = new XmlDocument();
XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", "ISO-8859-1", null);
doc.AppendChild(declaration);

Gibt es eine andere Klasse als die XmlDocument/XmlDeclaration, die ich suchen sollte, um die benutzerdefinierte XmlDekde zu erstellen? Oder gibt es eine Möglichkeit mit den XmlDocument/XmlDeclaration-Klassen selbst?

Antwort auf "Wie füge ich eine benutzerdefinierte XmlDekde mit XmlDocument/XmlDeclaration hinzu? " 2 von antworten

Was Sie erstellen möchten, ist keine XML-Deklaration, sondern eine "Verarbeitungsanweisung". Sie sollten die Klasse XmlProcessingInstruction class, not the verwenden, nicht die XmlDeclaration class, e.g.:-Klasse, z.B.:

XmlDocument doc = new XmlDocument();
XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", "ISO-8859-1", null);
doc.AppendChild(declaration);
XmlProcessingInstruction pi = doc.CreateProcessingInstruction("MyCustomNameHere", "attribute1=\"val1\" attribute2=\"val2\"");
doc.AppendChild(pi);

Sie möchten eine XmlProcessingInstruction anfügen, die mit der CreateProcessingInstruction Methode des XmlDocument erstellt wurde.

Beispiel:

XmlDocument document        = new XmlDocument();
XmlDeclaration declaration  = document.CreateXmlDeclaration("1.0", "ISO-8859-1", "no");

string data = String.Format(null, "attribute1=\"{0}\" attribute2=\"{1}\"", "val1", "val2");
XmlProcessingInstruction pi = document.CreateProcessingInstruction("MyCustomNameHere", data);

document.AppendChild(declaration);
document.AppendChild(pi);