属性はノードではないため、新しい属性の作成は他のノード タイプの作成とは異なります。 これらは要素ノードのプロパティであり、要素に関連付けられている XmlAttributeCollection に含まれています。 属性を作成して要素にアタッチするには、複数の方法があります。
要素ノードを取得し、 SetAttribute を使用して、その要素の属性コレクションに属性を追加します。
CreateAttribute メソッドを使用して XmlAttribute ノードを作成し、要素ノードを取得した後、SetAttributeNode を使用してその要素の属性コレクションにノードを追加します。
次の例は、 SetAttribute メソッドを使用して要素に属性を追加する方法を示しています。
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
Dim doc As New XmlDocument()
doc.LoadXml("<book xmlns:bk='urn:samples' bk:ISBN='1-861001-57-5'>" & _
"<title>Pride And Prejudice</title>" & _
"</book>")
Dim root As XmlElement = doc.DocumentElement
' Add a new attribute.
root.SetAttribute("genre", "urn:samples", "novel")
Console.WriteLine("Display the modified XML...")
Console.WriteLine(doc.InnerXml)
End Sub
End Class
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
var doc = new XmlDocument();
doc.LoadXml("<book xmlns:bk='urn:samples' bk:ISBN='1-861001-57-5'>" +
"<title>Pride And Prejudice</title>" +
"</book>");
XmlElement root = doc.DocumentElement;
// Add a new attribute.
root.SetAttribute("genre", "urn:samples", "novel");
Console.WriteLine("Display the modified XML...");
Console.WriteLine(doc.InnerXml);
}
}
次の例は、 CreateAttribute メソッドを使用して新しい属性を作成する方法を示しています。 次に、SetAttributeNode メソッドを使用して、book 要素の属性コレクションに属性が追加されます。
次の XML を指定します。
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
新しい属性を作成し、値を指定します。
Dim attr As XmlAttribute = doc.CreateAttribute("publisher")
attr.Value = "WorldWide Publishing"
XmlAttribute attr = doc.CreateAttribute("publisher");
attr.Value = "WorldWide Publishing";
要素に属性をアタッチします。
doc.DocumentElement.SetAttributeNode(attr)
doc.DocumentElement.SetAttributeNode(attr);
アウトプット
<book genre="novel" ISBN="1-861001-57-5" publisher="WorldWide Publishing">
<title>Pride And Prejudice</title>
</book>
完全なコード サンプルは、 CreateAttributeにあります。
属性の XmlNamedNodeMap を作成した 場合は、 SetNamedItem メソッドを使用して名前で属性を追加できます。 詳細については、「 NamedNodeMaps および NodeLists のノード コレクション」を参照してください。
既定の属性
既定の属性を持つ宣言された要素を作成すると、既定値を持つ新しい既定の属性が XML ドキュメント オブジェクト モデル (DOM) によって作成され、その要素にアタッチされます。 この時点で、既定の属性の子ノードも作成されます。
属性の子ノード
属性ノードの値は、その子ノードになります。 有効な子ノードには、 XmlText ノードと XmlEntityReference ノードの 2 種類しかありません。 これらは、 FirstChild や LastChild などのメソッドが子ノードとして処理するという意味で、子ノードです。 子ノードを持つ属性のこの区別は、属性または属性の子ノードを削除しようとするときに重要です。 詳細については、「DOM 内 の要素ノードからの属性の削除」を参照してください。
こちらも参照ください
.NET