E4X インスタンス

E4XはXMLに対するスクリプトを非常に簡単にします。

E4X インスタンス

例として、注文を表すXMLドキュメントと対話します。

XMLドキュメントはこんな感じです:

<order>
<date>2005-08-01</date>
<customer>
  <firstname>John</firstname>
  <lastname>Johnson</lastname>
</customer>
<item>
  <name>Maxilaku</name>
  <qty>5</qty>
  <price>155.00</price>
</item>
</order>

もし、このXMLドキュメントをtxtという名前の文字列に保存すると、以下のJavaScript文を書くことで、それをorderという名前のXMLオブジェクトに読み込むことができます:

var order = new XML(txt)

または、直接にXMLドキュメントを使用してこのXMLオブジェクト変数に値を割り当てることができます:

var order = new XML()
order=<order id="555">
<date>2005-08-01</date>
<customer>
  <firstname>John</firstname>
  <lastname>Johnson</lastname>
</customer>
<item>
  <name>Maxilaku</name>
  <qty>5</qty>
  <price>155.00</price>
</item>
</order>

データと対話:

価格を計算:

var total=order.item.qty * order.item.price

顧客のフルネームを表示:

document.write(order.customer.lastname)
document.write(",")
document.write(order.customer.firstname)

新しいプロジェクトを追加:

order.item+=
<item>
  <name>Pavlova</name>
  <qty>10</qty>
  <price>128.00</price>
</item>

注文番号を表示:

document.write(order.@id)

複数の注文がある場合、合計金額を計算します:

var price=0
for each (i in order.item)
  {
  price+= i.qty*i.price
  }