私が持っている場合は、以下の構造を持つXMLファイル(例):子ノードに保つXMLの親ノードを削除
私は期待出力とlistChild
と
listChild2
を、削除したい
<Parent1>
<listChild>
<child>
<listchild2>
<child2>
<child2>
<child2>
</listchild2>
</child>
<child>
<listchild2>
<child2>
<child2>
<child2>
</listchild2>
</child>
</listchild>
</parent1>
:
<Parent>
<child>
<child>
<child>
<child>
</child>
<child>
<child>
<child>
<child>
</child>
</parent>
私はこのように、System.Xml.Linq
を試してみました:
public void removeParentNode(String filename)
{
XDocument xdoc = XDocument.Load(filename);
//remove parent1
var child= xdoc.Descendants("child");
XElement dcuManager = new XElement("parent1 ");
parent1 .Add(child);
XDocument xdoc1 = new XDocument(dcuManager);
}
しかし、コードは外側のリストだけを削除します。
<listchild>
タグと</listchild>
タグだけを削除し、すべての子ノードを保持する方法はありますか?
------------------------更新--------------------- ---------------- XMLコード上記
は 私のXMLコードは非常に単純な例である:
<?xml version="1.0" encoding="utf-8"?>
<DcuManager xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<listDcu>
<Dcu id="dcu1 id" mode="dcu1 mode" port="dcu1 port">
<modemMgr>
<listModem>
<Modem id="Modem1 id" port="modem 1 port" communicationStatus="modem 1 mode">
<meterManager>
<listMeter>
<Meter id="Meter 1 id" port="Meter 1 port" mac="Meter 1 mode" />
</listMeter>
</meterManager>
</Modem>
<Modem id="Modem2 id" port="modem 2 port" communicationStatus="modem 2 mode">
<meterManager>
<listMeter>
<Meter id="Meter 2 id" port="Meter 2 port" mac="Meter 2 mode" />
</listMeter>
</meterManager>
</Modem>
</listModem>
</modemMgr>
</Dcu>
<Dcu id="dcu2 id" mode="dcu2 mode" port="dcu2 port">
<modemMgr>
<listModem>
<Modem id="Modem3 id" port="modem 3 port" communicationStatus="modem 3 mode">
<meterManager>
<listMeter>
<Meter id="Meter 3 id" port="Meter 3 port" mac="Meter 3 mode" />
</listMeter>
</meterManager>
</Modem>
<Modem id="Modem4 id" port="modem 4 port" communicationStatus="modem 4 mode">
<meterManager>
<listMeter>
<Meter id="Meter 4 id" port="Meter 4 port" mac="Meter 4 mode" />
</listMeter>
</meterManager>
</Modem>
</listModem>
</modemMgr>
</Dcu>
<Dcu id="dcu3 id" mode="dcu3 mode" port="dcu3 port">
<modemMgr>
<listModem>
<Modem id="Modem5 id" port="modem 5 port" communicationStatus="modem 5 mode">
<meterManager>
<listMeter>
<Meter id="Meter 5 id" port="Meter 5 port" mac="Meter 5 mode" />
</listMeter>
</meterManager>
</Modem>
<Modem id="Modem6 id" port="modem 6 port" communicationStatus="modem 6 mode">
<meterManager>
<listMeter>
<Meter id="Meter 6 id" port="Meter 6 port" mac="Meter 6 mode" />
</listMeter>
</meterManager>
</Modem>
</listModem>
</modemMgr>
</Dcu>
</listDcu>
</DcuManager>
このコードはC#クラスをXMLに変換しています。 私は、子ノードを保持しているdcuMgr、modemMgr、meterMgrを削除します。 どうすればよいですか?
代わりに 'listchild'を削除した場合、コードは正常に動作します。あなたのコードをどのような問題で更新しているのかは分かりません。 –
概念的には、ノードのコンテンツをコピーしてから、ノード自体を削除し、親ノードのコンテンツに貼り付ける必要があると思います。あなたはそれを処理する関数を作ることができますか? – Khyron