2012-06-20 7 views
5

Hola Actualmente estoy teniendo un problema al analizar una cadena Xml sin ningún espacio de nombres y agregué a un XElement existente con un espacio de nombres.Configuración del espacio de nombres durante un análisis

mi código:

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

    elem.Add(e); 
} 

el resultado:

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

mi problema es el xmlns = "" No puedo encontrar la manera de crear el nodo utilizando un método de análisis y darle un valor predeterminado espacio de nombre para usar.

¿Hay alguna forma de hacerlo?

Respuesta

8

Ok me di cuenta de cómo agregar el espacio de nombres para el nuevo XElement y todos los descendientes

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

Hasta ahora esto resuelve mi problema, pero si alguien puede ver una falla potencial o una manera más fácil de hacer esto por favor, que yo sé.

Cuestiones relacionadas