快速业务通道

Java SE 6新特性: XML API与Web服务 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
ent ) 5. sink = Result->NEW // Construct transformer 6. tFactory = TransformerFactory->NEW 7. transformer = tFactory->NewTransformer // Transform 8. transformer->Transfer( source, sink)

通过这个过程的转化,一个 javax.xml.transform.Source 可以转化成为类型 javax.xml.transform.Result。JDK 提供了如 图 5 所示的 4 种 Result 子类型,用户也可以定义自己的 Result 类型。另一方面,用户自定义的数据解析器或者数据文件,也可以作为 Transformer 的输入。下面一个例子,针对一个数据文件,首先生成了一棵 DOM 树,然后又根据这棵 DOM 树,提取了所有的联系信息,生成了一个文本文件。清单 6 给出了这个数据文件:

清单 6. 地址信息文件

work contact-info Location  Shanghai-shuion-333   Postal  200020   Tel     fix    63262299     mobile  1581344454   Appellation  Mr. Wang

Java SE 6新特性: XML API与Web服务(6)

时间:2011-02-15 IBM 沈羽

清单 7 为这个信息文件构造一个 DOM 树,并将其作为 transformer 的输入。

清单 7. 构造 DOM 树

import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.sax.SAXResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; class ContentHandler extends DefaultHandler {   @Override   public void characters(char[] ch, int start, int length)     throws SAXException {     String name = new String(ch, start, length);     System.out.print(name + "\t");   } } public class DOMTest {   /**   * @param args   * @throws TransformerException   */   public static void main(String[] args) {     try {       DocumentBuilderFactory documentfactory = DocumentBuilderFactory         .newInstance();       DocumentBuilder builder = documentfactory.newDocumentBuilder();       Document document = builder.newDocument();       Element root = document.createElement("work-contact-info");       Element loca = document.createElement("Location");       loca.setTextContent("Shanghai-shuion-333");       root.appendChild(loca);       Element postal = document.createElement("Postal");       postal.setTextContent("200020");       root.appendChild(postal);       Element tel = document.createElement("Tel");       root.appendChild(tel);       Element fix = document.createElement("fix");       fix.setTextContent("63262299");       tel.appendChild(fix);       Element mobile = document.createElement("mobile");       mobile.setTextContent("1581344454");       tel.appendChild(mobile);       Element appellation = document.createElement("Appellation");       appellation.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号