Kez*_*zza 6 c# xml linq-to-xml xml-namespaces xml-parsing
您好,我目前遇到的问题是解析没有任何命名空间的Xml字符串,并添加到具有命名空间的现有XElement.
我的代码:
XElement elem = root.Element(xs + "methodCall");
if (elem != null)
{
XElement e = XElement.Parse(this.MethodCallXML);
elem.Add(e);
}
Run Code Online (Sandbox Code Playgroud)
结果:
<methodCall>
<methodCall service="activity" method="activityDeleteComment" xmlns="">
<espSessionState>espSessionState1</espSessionState>
<traceFlowCode>true</traceFlowCode>
<params>
<commentID>http://uri1</commentID>
<isPermanentDelete>false</isPermanentDelete>
</params>
</methodCall>
</methodCall>
Run Code Online (Sandbox Code Playgroud)
我的问题是xmlns =""我无法弄清楚如何使用parse方法创建节点并给它一个默认的命名空间来使用.
有没有办法做到这一点?
Kez*_*zza 11
好的,我想出了如何将命名空间添加到新的XElement和所有后代
foreach (XElement ce in e.DescendantsAndSelf())
ce.Name = xs + ce.Name.LocalName;
Run Code Online (Sandbox Code Playgroud)
到目前为止,这解决了我的问题,但如果有人能看到潜在的缺陷或更容易的方式,请告诉我.