pragmatisch zu sein, XDocument
vs XmLDocument
ist nicht alles-oder-nichts (es sei denn, Sie auf Silverlight) sind - also wenn XmlDoucument
etwas tut, was Sie brauchen, und XDocument
nicht, dann verwenden Sie vielleicht XmlDocument
(mit ImportNode
usw.).
Das sagte, selbst mit XDocument
, könnten Sie wahrscheinlich XNode.ReadFrom
verwenden, um jedes zu importieren, dann einfach .Add
es in die Hauptsammlung.
Natürlich, wenn die Dateien groß sind, könnte XmlReader/XmlWriter
effizienter sein ... aber komplexer. Zum Glück hat XmlWriter
eine WriteNode
Methode, die eine XmlReader
akzeptiert, so dass Sie zum ersten Kind in der XmlReader
navigieren und dann einfach in die Ausgabedatei blitzen können. Etwas wie:
static void AppendChildren(this XmlWriter writer, string path)
{
using (XmlReader reader = XmlReader.Create(path))
{
reader.MoveToContent();
int targetDepth = reader.Depth + 1;
if(reader.Read()) {
while (reader.Depth == targetDepth)
{
writer.WriteNode(reader, true);
}
}
}
}
Vielen Dank. Es tut mir leid, ich hasse XSL. Ich würde definitiv eine C# code basierte Lösung bevorzugen. – Larry
Kein Problem, ich verstehe XSL Vermeidung, da es manchmal sehr verwirrend sein kann. – schnaader