-1

私はこのような1つのxmlファイルを持っています

<SequenceFlow>
 <FlowWriteLine> hiiii </FlowWriteLine>
</SequenceFlow> 

C#を使用してSilverlightで別のXmlファイルを作成したかったのです。XDocumentはSilverlightで使用しています。このXmlの各ノードは、次のような別の単語と同じです。

SequenceFlow = WorkFlow、

FlowWriteLine = WriteLine

したがって、新しいXmlを作成すると、次のようになります。

<WorkFlow>
 <WriteLine> hiii </WriteLine>
</WorkFlow>

それで、どうすれば古いものを使用して新しいXmlを作成できますか..plsは私を助けます...事前の感謝..

4

1 に答える 1

1

現在のノード名に基づいてノード名を設定するだけです。以下のサンプルでは、​​ノード名を置き換えるために辞書を使用しています。

元の名前から新しいものへのマッピングのように、ノード名を置き換えるために持っている他のロジックを使用できます。

XDocument doc = XDocument.Parse(@"<SequenceFlow>
    <FlowWriteLine> hiiii </FlowWriteLine>
    <NotToBeReplaced>byeee</NotToBeReplaced>
    </SequenceFlow> ");

Dictionary<string, string> replacements = new Dictionary<string, string>() { { "SequenceFlow", "Workflow" }, { "FlowWriteLine", "WriteLine" } };

foreach (XElement child in doc.Root.DescendantsAndSelf())
{
    string replacementValue = string.Empty;
    if (replacements.TryGetValue(child.Name.LocalName, out replacementValue))   
    {
        child.Name = replacementValue;
    }
}

上記は次のように出力を与えます

<Workflow>
  <WriteLine> hiiii </WriteLine>
  <NotToBeReplaced>byeee</NotToBeReplaced>
</Workflow>
于 2013-01-23T10:14:47.213 に答える