Das erste Beispiel hat mir geholfen, eine Erweiterungsfunktion für ein XSLT- Stylesheet zu schreiben , das eine Reihe von Knoten an den Prozessor zurückgibt. Vielen Dank!
CodeManX
1
Ich würde argumentieren , dass , wenn Sie die Fassung XmlElementmit var, die ersten wäre an der Arbeit viel leichter sein , mit
Robert Perry
1
Die Arbeit mit einem Wörterbuch -> Level2 oben stammt aus einem Wörterbuch in meinem Fall (nur für den Fall, dass es jemand nützlich findet). Beim ersten Beispiel bin ich auf diesen Fehler gestoßen:
"Dieses Dokument hat bereits einen 'DocumentElement'-Knoten."
Die Antwort hier hat mich inspiriert
und habe meinen Code bearbeitet: (xmlDoc. DocumentElement .AppendChild (body))
//a dictionary:Dictionary<string,string>Level2Data{{"level2","text"},{"level2","other text"},{"same_level2","more text"}}//xml Decalration:XmlDocument xmlDoc =newXmlDocument();XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0","UTF-8",null);XmlElement root = xmlDoc.DocumentElement;
xmlDoc.InsertBefore(xmlDeclaration, root);// add bodyXmlElement body = xmlDoc.CreateElement(string.Empty,"body",string.Empty);
xmlDoc.AppendChild(body);XmlElement body = xmlDoc.CreateElement(string.Empty,"body",string.Empty);
xmlDoc.DocumentElement.AppendChild(body);//without DocumentElement ->ERRforeach(KeyValuePair<string,string> entry inLevel2Data){//write to xml: - it works version 1.XmlNode keyNode = xmlDoc.CreateElement(entry.Key);//open TAB
keyNode.InnerText= entry.Value;
body.AppendChild(keyNode);//close TAB//Write to xmml verdion 2: (uncomment the next 4 lines and comment the above 3 - version 1//XmlElement key = xmlDoc.CreateElement(string.Empty, entry.Key, string.Empty);//XmlText value = xmlDoc.CreateTextNode(entry.Value);//key.AppendChild(value);//body.AppendChild(key);}
Beide Versionen (1 und 2 innerhalb jeder Schleife) geben die Ausgabe aus:
(Hinweis: Die dritte Zeile "gleiche Ebene2" im Wörterbuch kann auch Ebene2 sein wie die anderen, aber ich wollte den Vorteil des Wörterbuchs veranschaulichen - in meinem Fall brauchte ich Ebene2 mit unterschiedlichen Namen.
Antworten:
Wie wäre es mit:
(1) Erfordert eine gültige XML-Datei eine XML-Deklaration?
(2) Was ist der Unterschied zwischen String.Empty und "" (leerer String)?
Das Ergebnis ist:
Ich empfehle Ihnen jedoch, LINQ to XML zu verwenden , das einfacher und lesbarer ist als hier:
quelle
XmlElement
mitvar
, die ersten wäre an der Arbeit viel leichter sein , mitDie Arbeit mit einem Wörterbuch -> Level2 oben stammt aus einem Wörterbuch in meinem Fall (nur für den Fall, dass es jemand nützlich findet). Beim ersten Beispiel bin ich auf diesen Fehler gestoßen: "Dieses Dokument hat bereits einen 'DocumentElement'-Knoten." Die Antwort hier hat mich inspiriert
und habe meinen Code bearbeitet: (xmlDoc. DocumentElement .AppendChild (body))
Beide Versionen (1 und 2 innerhalb jeder Schleife) geben die Ausgabe aus:
(Hinweis: Die dritte Zeile "gleiche Ebene2" im Wörterbuch kann auch Ebene2 sein wie die anderen, aber ich wollte den Vorteil des Wörterbuchs veranschaulichen - in meinem Fall brauchte ich Ebene2 mit unterschiedlichen Namen.
quelle