2012-06-20 20 views
5

こんにちは、現在、ネームスペースなしでXml文字列を解析する際に問題が発生し、ネームスペースを持つ既存のXElementに追加されています。解析中に名前空間を設定する

私のコード:

XElement elem = root.Element(xs + "methodCall"); 
if (elem != null) 
{ 
    XElement e = XElement.Parse(this.MethodCallXML); 

    elem.Add(e); 
} 

結果:

<methodCall> 
    <methodCall service="activity" method="activityDeleteComment" xmlns=""> 
    <espSessionState>espSessionState1</espSessionState> 
    <traceFlowCode>true</traceFlowCode> 
    <params> 
     <commentID>http://uri1</commentID> 
     <isPermanentDelete>false</isPermanentDelete> 
    </params> 
    </methodCall> 
</methodCall> 

私の問題は、私は、parseメソッドを使用してノードを作成する方法を見つけ出すと、それをデフォルトに与えることができない「」のxmlns =です使用する名前空間。

これを実行する方法はありますか?

答えて

8

は、[OK]を私は新しいのXElementに名前空間を追加し、

foreach (XElement ce in e.DescendantsAndSelf()) 
    ce.Name = xs + ce.Name.LocalName; 

はこれまでのところ、これは私の問題を解決し、すべての子孫が、誰もが潜在的な欠陥またはこれを行う簡単な方法を見ることができれば聞かせてくださいする方法を考え出しました私は知っている。

関連する問題