После того, как вы разобрали файлы XML на объекты TXMLDocument
/ IXMLDocument
, клонировать / перемещать IXMLNode
* 1009 довольно просто. * объекты из одного документа в другой (см. IXMLNode.CloneNode()
или IXMLNodeList.Add()
и IXMLNodeList.Remove()
). Хотя вы не можете переименовать узел, вы можете создать новый узел с желаемым именем (см. IXMLNode.AddChild()
), а затем клонировать / переместить дочерние элементы старого узла под новым узлом.
Вы не должны использовать строки XML для этих задач. Вместо этого манипулируйте деревом DOM. Таким образом, вы получите IXMLNode
для <node1>
в File2, добавьте новый IXMLNode
для <node2>
в File1, а затем клонируйте / переместите <subnode1>
и <subnode2>
из IXMLNode
в File2 в IXMLNode
в файле 1.
При этом, почему ваши элементы сначала называются последовательно? <node>
, <subnode>
, <value>
, и т.д. c будет вполне достаточно. Вы можете иметь несколько <node>
s, несколько <subnode>
s, несколько <value>
в одном документе по мере необходимости. XML позволяет использовать повторяющиеся имена элементов. На самом деле вам не нужно использовать последовательные числа в именах элементов, например:
<?xml version="1.0"?>
<main>
<node>
<subnode>
<value>101</value>
<value>102</value>
<value>103</value>
</subnode>
<subnode>
<value>501</value>
<value>502</value>
<value>503</value>
</subnode>
</node>
<node>
<subnode>
<value>454</value>
<value>471</value>
<value>498</value>
</subnode>
<subnode>
<value>723</value>
<value>645</value>
<value>823</value>
</subnode>
</node>
</main>
Если вам действительно нужно различать по числам, вы можете вместо этого использовать атрибуты, например:
<?xml version="1.0"?>
<main>
<node id="1">
<subnode id="1">
<value id="1">101</value>
<value id="2">102</value>
<value id="3">103</value>
</subnode>
<subnode id="2">
<value id="1">501</value>
<value id="2">502</value>
<value id="3">503</value>
</subnode>
</node>
<node id="2">
<subnode id="1">
<value id="1">454</value>
<value id="2">471</value>
<value id="3">498</value>
</subnode>
<subnode id="2">
<value id="1">723</value>
<value id="2">645</value>
<value id="3">823</value>
</subnode>
</node>
</main>