8

Linq to xml を使用していくつかの xml ファイルを操作する必要があります。

ロードする既存の XDocument があります

名前空間を追加できないようです。

そうです:

//Load an existing xml into a XDocument
XDocument xdoc=XDocument.Load(myXml);

//Create a namespace
 XNamespace myNS="http://www.w3.org/2001/XMLSchema-instance/MyShinyNewNamespace";
 xAttribute myAttr=new XAttribute(XNamespace.Xmlns +"myNS",myNS);

  //Add new namepsace to root

 xdoc.Root ????

What do you do here?

名前空間を取得するにはどうすればよいですか?

取り外し/交換するにはどうすればよいですか?

どうもありがとう

4

2 に答える 2

20

まず第一に、XMLマークアップを使用すると

<root xmlns="http://example.com/ns">
  <foo>
    <bar>baz</bar>
  </foo>
</root>

単一の名前空間宣言属性を使用して、ルート要素とそれらの子孫要素を宣言された名前空間に配置するには、ツリーモデルを操作するときにName、すべての要素のを変更する必要があるため、たとえば、

XNamespace myNs = "http://example.com/ns";

foreach (XElement el in xdoc.Descendants()) 
{
  el.Name = myNs + el.Name.LocalName;
}

特定のプレフィックスも設定する場合は、さらに設定しpfます

  xdoc.Root.Add(new XAttribute(XNamespace.Xmlns + "pf", myNs));
于 2013-01-12T15:38:22.887 に答える