1
XmlDocument
の "NP"から "NP"で始まるノードの名前を変更しようとしました。私はthis related questoinしか見つけませんでした。最もアップ投票の回答をもとに私が書いた:Xmlノードの名前を変更
XmlNodeList npNodeList = PSbank.SelectNodes("//*[starts-with(name(), 'NP')]");
foreach (XmlNode npNode in npNodeList)
{
// create new (renamed) Content node
XmlNode newNode = PSbank.CreateElement("NP");
// [if needed] copy existing Content children
newNode.InnerXml = npNode.InnerXml;
// replace existing Content node with newly renamed Content node
npNode.ParentNode.InsertBefore(newNode, npNode);
npNode.ParentNode.RemoveChild(npNode);
}
しかし、それは私の場合には動作しませんようです。 NPX
ノードに他のNPX
ノードが含まれている場合、コードがXmlDocument
を操作し、外側ノードを古いinnerXml
を含む新しい作成ノードに置き換えるため、内部ノードは置換されません。
例のXml:
<S>
<NPC>
<NP> A </NP>
<NPA> B </NPA>
</NPC>
<NPD>
C
</NPD>
</S>
私はこのような問題のために、より一般的でエレガントな答えを探してください。
ありがとうございました。 – Furtiro