2012-06-20 19 views
5

Witam Obecnie mam problem z parsowaniem ciągu Xml bez jakiejkolwiek przestrzeni nazw i dodany do istniejącego XElement z przestrzenią nazw.Ustawianie przestrzeni nazw podczas analizy

mój kod:

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

    elem.Add(e); 
} 

wynik:

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

mój problem jest xmlns = „” Nie mogę dowiedzieć się, jak utworzyć węzeł przy użyciu metody analizowania i nadać mu domyślną przestrzeń nazw do użycia.

Czy jest jakiś sposób na zrobienie tego?

Odpowiedz

8

Ok I zorientowali się, jak dodać obszaru nazw do nowego Xelement i wszyscy potomkowie

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

Dotychczas to rozwiązuje mój problem, ale jeśli ktoś widzi potencjalną wadę lub łatwiejszy sposób to zrobić daj ja wiem.