次の方法で共有


XML ツリーに要素、属性、ノードを追加する (LINQ to XML)

コンテンツ (要素、属性、コメント、処理命令、テキスト、CDATA) を XML ツリーに追加できます。

コンテンツを追加するためのメソッド

次のメソッドを使用すると、XElement または XDocument に子コンテンツを追加できます。

メソッド 説明
Add XContainer の子コンテンツの末尾にコンテンツを追加します。
AddFirst XContainer の子コンテンツの冒頭にコンテンツを追加します。

次のメソッドは、XNode の兄弟ノードとしてコンテンツを追加します。 兄弟コンテンツの追加先となる最も一般的なノードは XElement ですが、XTextXComment など別の種類のノードに、有効な兄弟コンテンツを追加することもできます。

メソッド 説明
AddAfterSelf XNode の後にコンテンツを追加します。
AddBeforeSelf XNode の前にコンテンツを追加します。

例: 2 つの XML ツリーを作成し、いずれかを変更する

次の例では、2 つの XML ツリーを作成してから、いずれかを変更します。

var srcTree = new XElement("Root",
    new XElement("Element1", 1),
    new XElement("Element2", 2),
    new XElement("Element3", 3),
    new XElement("Element4", 4),
    new XElement("Element5", 5)
);
var xmlTree = new XElement("Root",
    new XElement("Child1", 1),
    new XElement("Child2", 2),
    new XElement("Child3", 3),
    new XElement("Child4", 4),
    new XElement("Child5", 5)
);
xmlTree.Add(new XElement("NewChild", "new content"));
xmlTree.Add(
    from el in srcTree.Elements()
    where (int)el > 3
    select el
);
// Even though Child9 doesn't exist in srcTree, the following statement won't
// throw an exception, and nothing will be added to xmlTree.
xmlTree.Add(srcTree.Element("Child9"));
Console.WriteLine(xmlTree);
Dim srcTree As XElement =
    <Root>
        <Element1>1</Element1>
        <Element2>2</Element2>
        <Element3>3</Element3>
        <Element4>4</Element4>
        <Element5>5</Element5>
    </Root>
Dim xmlTree As XElement =
    <Root>
        <Child1>1</Child1>
        <Child2>2</Child2>
        <Child3>3</Child3>
        <Child4>4</Child4>
        <Child5>5</Child5>
    </Root>

xmlTree.Add(<NewChild>new content</NewChild>)
xmlTree.Add(
    From el In srcTree.Elements()
    Where CInt(el) > 3
    Select el)

' Even though Child9 doesn't exist in srcTree, the following statement
' won't throw an exception, and nothing will be added to xmlTree.
xmlTree.Add(srcTree.Element("Child9"))
Console.WriteLine(xmlTree)

この例を実行すると、次の出力が生成されます。

<Root>
  <Child1>1</Child1>
  <Child2>2</Child2>
  <Child3>3</Child3>
  <Child4>4</Child4>
  <Child5>5</Child5>
  <NewChild>new content</NewChild>
  <Element4>4</Element4>
  <Element5>5</Element5>
</Root>