使用XKit开发XMLBeans
作者: 经乾, 出处:IT专家网, 责任编辑: 叶江,
2007-03-12 10:39
本文将侧重于如何使用 XKit 来开发 XMLBeans 的内容……
3. XmlCursor的使用
XmlCursor代表着 XML 文档中两个逻辑令牌之间的位置。令牌本身不作为对象暴露,但是它们的类型和属性则可以通过 XmlCursor 去引用。使用 XmlCursor ,你可以通过 execQuery() 和 selectPath() 去执行 XQuery 和 XPath 表达式,对 XML 文档作 Inserting, Moving, Copying, Removing 操作。
使用 XmlCursor 重新改写后的 TotalPrice.java 如清单 4 所示。
清单4:TotalPrice.java
| import com.bea.xml.*; import java.io.*; import com.ikigo.bods.*; import com.ikigo.bods.LineDocument.*; import com.ikigo.bods.OrderDocument.*; public class TotalPrice { public static void main(String[] args) throws Exception { OrderDocument doc = (OrderDocument)OrderDocument.Factory.parse( new File("Order.xml")); Order order = doc.getOrder(); float amt = 0; XmlCursor cursor = order.getLines().newCursor(); cursor. toFirstChild (); do { Line line = (Line)cursor.getObject(); amt += line.getQty() * line.getPrice(); } while (cursor. toNextSibling ()); System.out.println("Order Value: " + amt); } } |
4.XQuery的使用
使用 XmlCursor 的 execQuery () 方法可以执行 XQuery 语句。使用清单 5 的程序可以列出 Order.xml 文档中订购数量大于 50 的行。
清单5:XQuery .java
| import com.bea.xml.*; import java.io.*; import com.ikigo.bods.* public class XQuery { public static void main(String[] args) throws Exception { OrderDocument doc = (OrderDocument)OrderDocument.Factory.parse(new File("Order.xml")); String query = " declare namespace o='http://www.ikigo.com/bods'"; query += " //o:line[o:qty>50]"; XmlCursor cursor = doc.newCursor().execQuery(query); System.out.println(cursor.xmlText()); } |
- 本文关键词:

