E4X 实例

E4X 使针对 XML 的脚本异常简单。

E4X 实例

作为一个例子,我们将和一个表示订单的 XML 文档打交道。

XML 文档类似这样:

  1. <order>
  2. <date>2005-08-01</date>
  3. <customer>
  4. <firstname>John</firstname>
  5. <lastname>Johnson</lastname>
  6. </customer>
  7. <item>
  8. <name>Maxilaku</name>
  9. <qty>5</qty>
  10. <price>155.00</price>
  11. </item>
  12. </order>

假如我们把这个 XML 文档存储在名为 txt 的字符串中,那么通过编写下面的 JavaScript 语句,我们就可以把它载入名为 order 的 XML 对象中:

  1. var order = new XML(txt)

或者我们可以直接使用 XML 文档对这个 XML 对象变量进行赋值:

  1. var order = new XML()
  2.  
  3. order=<order id="555">
  4. <date>2005-08-01</date>
  5. <customer>
  6. <firstname>John</firstname>
  7. <lastname>Johnson</lastname>
  8. </customer>
  9. <item>
  10. <name>Maxilaku</name>
  11. <qty>5</qty>
  12. <price>155.00</price>
  13. </item>
  14. </order>

与数据打交道:

计算价格:

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

显示客户的全称:

  1. document.write(order.customer.lastname)
  2. document.write(",")
  3. document.write(order.customer.firstname)

添加新项目:

  1. order.item+=
  2. <item>
  3. <name>Pavlova</name>
  4. <qty>10</qty>
  5. <price>128.00</price>
  6. </item>

显示订单编号:

  1. document.write(order.@id)

如果有多项订单,则计算总价:

  1. var price=0
  2. for each (i in order.item)
  3. {
  4. price+= i.qty*i.price
  5. }