Ich habe eine XML-Datei und möchte einige Knoten davon in einer neuen XML-Datei extrahieren und speichern. Die XML-Datei lautet wie folgt:nur Elternknotenattribut ohne Kinder zugreifen
<?xml version="1.0" encoding="utf-8"?>
<files version="2.1.8" Dir="D:Test\Exm_2" modified="2016-03-18 23:14:58Z" user="Test" language="en">
<file name="1">
<file name="4">
<file name="9">
</file>
</file>
</file>
<file name="2">
</file>
<test name="3">
<test name="5">
<test name="7">
</test>
</test>
</test>
</files>
Mein Ziel ist es, einige spezielle Knoten (hier Testknoten) dieser XML-Datei zu speichern. Die Idee ist, das damit verbundene root-Attribut zu speichern. Ich meine, wenn ich Knoten speichern test
in einer neuen Datei mag ich das root-Attribut als die ursprüngliche XML-Datei haben will wie:
<?xml version="1.0" encoding="utf-8"?>
<files version="2.1.8" Dir="D:Test\Exm_2" modified="2016-03-18 23:14:58Z" user="Test" language="en">
<tests>
<test name="3">
<test name="5">
<test name="7">
</test>
</test>
</test>
</tests>
</files>
Aber ich gegen sein Attribut zu speichern. Mein Code für die zweite XML-Datei zu speichern ist
public void Creat_Steps(string xmlfile, string FileName)
{
XElement doc = XElement.Load(xmlfile);
var item = doc.XPathSelectElement("//test");
XElement newDoc = new XElement("files", new XElement("tests", item));
XElement Docc = new XElement("files", item);
Docc.Save(FileName + ".xml");
}
Aber dieser Code erstellen, die nur einen Wurzelknoten mit dem Namen files
ohne Attribut. Ich muss das Attribut in der neuen XML-Datei verwenden und habe es dann nicht. Irgendwelche Ideen?
Vielen Dank im Voraus!
Bitte beheben Sie Ihre Beispiel-XML - es ist derzeit ungültig, da Sie nicht genug Enddatei Elemente haben. Es ist nicht klar, ob das so ist, weil 'sollte' 'oder ob Name 9 in Name 4 sein sollte, aber es ist einfacher, Ihnen zu helfen, wenn die XML gültig ist beginnen mit. Wir sollten es nicht selbst reparieren müssen, um es zu testen. –
Danke für Ihren Kommentar. Ich tat! –