この問題は、以前の問題 (xml ルートを 2 つのブランチに分割する方法 - 最初のブランチに特定の子を除いてすべて、2 番目のブランチに特定の子を含む) と非常によく似ています。
以前のように、ファイルがあります:
<config width="100" height="200">
<parameter name="account number" country="UK">
12345678901234567890123456
</parameter>
<parameter name="client code" codeType="xa">
UK0112
</parameter>
<parameter name="email-address" accepts="yes">
john.sparrow@rex.co.uk
</parameter>
<parameter name="postal-code" country="UK">
W1A 1HQ
</parameter>
<parameter name="additional parameters" mode="on">
<parameter name="preferences" type="internal">
Not applicable
</parameter>
<parameter name="issues" type="internal" category="normal">
None
</parameter>
<parameter name="complaints" type="internal">
None
</parameter>
<parameter name="approbation" type="external">
X11
</parameter>
</parameter>
</config>
今回は、「問題」という名前の任意の子を1つ解きほぐし、それを別のブランチに入れ、すべてのノードのすべての属性を保持したい(幅、高さ、または色などの追加要素など) - 解決策はABach 提供 (感謝)。違いは、ノードを別のブランチに移動する前に属性カテゴリを削除したいということです
<configs>
<config width="100" height="200">
<parameter name="account number" country="UK">
12345678901234567890123456
</parameter>
<parameter name="client code" codeType="xa">
UK0112
</parameter>
<parameter name="email-address" accepts="yes">
john.sparrow@rex.co.uk
</parameter>
<parameter name="postal-code" country="UK">
W1A 1HQ
</parameter>
<parameter name="additional parameters" mode="on">
<parameter name="preferences" type="internal">
Not applicable
</parameter>
<parameter name="complaints" type="internal">
None
</parameter>
<parameter name="approbation" type="external">
X11
</parameter>
</parameter>
</config>
<config width="100" height="200">
<parameter name="issues" type="internal">
None
</parameter>
</config>
<configs>
子とその親の選択はハードコーディングされ (パラメーター/パラメーター)、属性名に基づいています (課題)