6

こんにちは、私は現在、名前空間のない Xml 文字列の解析に問題があり、名前空間を持つ既存の 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="" です。解析メソッドを使用してノードを作成し、使用するデフォルトの名前空間を与える方法がわかりません。

これを行う方法はありますか?

4

1 に答える 1

11

わかりました、名前空間を新しい XElement とすべての子孫に追加する方法を見つけました

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

これまでのところ、これで問題は解決しましたが、潜在的な欠陥やこれを行う簡単な方法を誰かが知っている場合は、私に知らせてください.

于 2012-06-20T14:15:53.460 に答える