嗨,我目前在解析没有任何 namespace 的Xml字符串时遇到问题,并添加到具有 namespace 的现有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>
我的问题是xmlns =“”我无法弄清楚如何使用解析方法创建节点并为它提供默认的 namespace 以供使用。
有什么办法吗?
最佳答案
好的,我弄清楚了如何将命名空间添加到新的XElement和所有后代中
foreach (XElement ce in e.DescendantsAndSelf())
ce.Name = xs + ce.Name.LocalName;
到目前为止,这可以解决我的问题,但是如果有人看到潜在的缺陷或更简便的方法,请告诉我。