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
  }