2012-06-20 19 views
5

Ciao Attualmente sto riscontrando un problema con l'analisi di una stringa Xml senza alcun spazio dei nomi e aggiunta a un XElement esistente con uno spazio dei nomi.Impostazione dello spazio dei nomi durante un'analisi

il mio codice:

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

    elem.Add(e); 
} 

il risultato:

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

il mio problema è xmlns = "" Io non riesco a capire come creare il nodo utilizzando un metodo di analisi e dargli un default spazio dei nomi da usare.

C'è un modo per farlo?

risposta

8

Ok ho capito come aggiungere lo spazio dei nomi per il nuovo XElement e tutti i discendenti

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

Finora questo risolve il problema, ma se qualcuno può vedere un potenziale difetto o di un modo più semplice di fare questo si prega di lasciare conoscermi.

Problemi correlati