解析J2EE与XML组合技术(2)

  从 Web 或者企业级应用的角度看,能以这种方式访问数据真是一种福音,因为它体现了高度的可移动性,使我们与元数据的实际资源本身隔离。这些资源可能来自一个关系数据库系统、某种活动媒体服务器或者 Web 服务器上的一个静态 XML 文档,等等。如果想把这些数据加载到 Java 应用中,我们可以从当前众多的 Java 语言 XML 解析器中选用一个,通过它将 XML 数据装入一个 DOM 文档,最后遍历文档,将所有这些数据转换到我们应用系统的对象模型中。
 
  下面是个简单的基于 DOM 的解析程序,可对上述的媒体 DTD 进行解析。解析器用的是 Apache Xerces
 
   package jaf xml
 
   import java util *
 
   import java io IOException
 
   import org w3c dom *
 
   import org xml sax *
 
   // XML 文档解析程序,使用上述媒体 DTD
 
   public class MediaParser implements ErrorHandler {
 
   /** 使用 Apache Xerces 解析器 */
 
   org apache xerces parsers DOMParser mParser
 
   new org apache xerces parsers DOMParser ();
 
   /** 构造函数 */
 
   public MediaParser () {
 
   // 告诉解析器验证并解析文档
 
   try {
 
   mParser setFeature "http //xml org/sax/features/validation" true );
 
   }
 
   catch SAXException e {
 
   System out println "Error setting validation on parser " );
 
   e printStackTrace ();
 
   }
 
   // 设置解析器的错误处理句柄(软件设计师)
 
   mParser setErrorHandler this );
 
   }
 
   /** 解析指定的 URL ,返回找到的 XML 文档(软件设计师)
 
   */
 
   public Document parse String url throws SAXException IOException {
 
   mParser parse url );
 
   Document mediaDoc mParser getDocument ();
 
   return mediaDoc
 
   }
 
   /** 解析指定 URL XML 文档,将内容转换成 MediaAsset 对象
 
   */
 
   public Collection loadAssets String url throws SAXException IOException {
 
   Document doc parse url );
 
   Collection assets new LinkedList ();
 
   NodeList assetNodes doc getElementsByTagName "media asset" );
 
   for int i 0 i < assetNodes getLength (); i ++) {
 
   Node assetNode assetNodes item i );
 
   MediaAsset asset new MediaAsset assetNode );
 
   assets add asset );
 
   }
 
   return assets
 
   }
 
   /**
 
   * 错误处理代码(为简洁起见省略了)
 
   */
 
   }
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值