属性 (Attribute) は、要素の一部です。属性は、
名前="値"
のペアで構成されます。上のサンプル文書の例では、属性名が "Name"、値が "A" というわけです。 属性を追加するにはまず、要素を作成しなければなりません。そのうえで、属性を要素に追加します。属性を作成するにはいくつか方法があります。Node のメソッドで、ノードに関するさまざまな操作ができるので、Element に追加されているメソッドは、主に属性とその値にかかわっているものです。DOM のインターフェースで属性を担当するのは、Attr です。DOM の初期版では attribute インターフェースだったのが、IDL のキーワード [attribute] と紛らわしいので Attr に変更されたのだそうです。それではまず属性の文書への追加の仕方です。
// Document オブジェクトを作成します。
Document document = new XmlDocument();
// Result というタグを持った要素を作成します。
Element element = document.createElement("Result");
// Name という名前の属性を作成します。
Attr name = document.createAttribute("Name");
// Name 属性の値を A とします。
name.setValue("A");
// Name 属性を Result 要素に追加します。
Attr attr = element.setAttributeNode(name);
// Result 要素を XML 文書に追加します。
Node node = document.appendChild(element);
このようにすることで、<Result Name="A" /> と作成されます。
属性を作成するには、 Document の createAttribute メソッドを使用します(3行目)。引数には、作成する属性の名前を指定します。上の例では Name です。
Attr には、属性の値を設定する setValue メソッドがあります(4行目)。引数に属性の値を指定します。ここでは "A" を指定しました。
Element には、setAttributeNode メソッドがあります。引数には Attr オブジェクト、戻り値には設定された Attr オブジェクトが返ります。
そして最後に、Result 要素を文書に追加しています。
これが属性の作成(その1)です。Attr オブジェクトがあるときはこの方法を取ればいいでしょう。先ほども書いたように、Element には属性の操作を行うメソッドが追加されています。中でも setAttribute メソッドは一番簡単に属性を追加できると思います。
// Document オブジェクトを作成します。
Document document = new XmlDocument();
// Result というタグを持った要素を作成します。
Element element = document.createElement("Result");
// Result 要素に Name という名前、A という値を持った属性を作成します。
element.setAttribute("Name", "A");
// Result 要素を XML 文書に追加します。
Node node = document.appendChild(element);
結果は同じで、<Result Name="A" /> と作成されます。
こちらの方が簡単でしょう。新規に文書を作成する場合はこちらを使った方がコードの量も減るのでおすすめです。このサイトでは属性を作成する場合、こちらのメソッドを使用していくことにします。
|