目次へ

5. XML文書を作成する2

5.1. 属性の付加

属性ノードを付加するためには、2つの方法があります。

一つは、要素やテキストノードと同様に、属性ノードを作成して付加する方法です。属性ノードを作成するには、DocumentオブジェクトのcreateAttribute(String tagName)メソッドを使用します。引数には、属性の名前を設定します。戻り値としてAttrノードが返されます。属性の値を設定するには、AttrノードのsetValue(String value)メソッドを使用します。引数に、属性の値をあらわす文字列を指定します。作成した属性ノードを要素に付加するためには、ElementのsetAttributeNode(Attr attr)メソッドを使用します。

二つ目の方法は、ElementのsetAttribute(String attrName,String attrValue)メソッドを使用する方法です。setAttribute()メソッドは2つのString引数をとります。一つ目の引数には、属性の名前を指定します。二つ目の引数には、属性の値を指定します。メソッドを実行すると、指定した名前、値の属性がElementノードに追加されます。

それでは、以下のようなXML文書を生成してみましょう。4.2で紹介したXML文書にid属性を追加します。

1  <employees>
2    <employee id="1" >太郎</employee>
3    <employee id="2" >次郎</employee>
4  </employees>

以上のXML文書を出力するプログラムは以下のようになります。

15  public class WriteAttributes{
16      
17      public static void main(String args[]) throws Exception{
18
...
22
23          Document document = domImpl.createDocument("","employees",null);
24          Element employees=document.getDocumentElement();
25
26          Element employee=document.createElement("employee");
27          employee.appendChild(document.createTextNode("太郎"));
28          employees.appendChild(employee);
29
30          Attr attr=document.createAttribute("id");
31          attr.setValue("1");
32          employee.setAttributeNode(attr);
33
34          Element employee2=document.createElement("employee");
35          employee2.appendChild(document.createTextNode("次郎"));
36          employees.appendChild(employee2);
37
38          employee2.setAttribute("id","2");
39
...
48      }
49      
50  }

一つ目の「employee」要素には、setAttributeNode()メソッドを使用して、属性を追加しています。まず、30行目で、DocumentのcreateAttribute()メソッドを使用し「id」という名前の属性ノードを作成しています。次に、31行目で、id属性の値を「1」に設定しています。最後に、作成した属性をemployee要素に追加します(32行目)。

二つ目の「employee」要素には、 setAttribute()メソッドを使用して属性を追加しています。一つ目の引数には「id」、二つ目の引数には「2」を指定しています。これにより、属性名「id」、属性値「2」の属性を、employee要素に追加しています。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp