xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
读者或许熟悉apache软件基金和它的各种相关的项目。下面,我们讨论xalan-java xslt处理器和关于它分割功能的应用。
xml数据有各种各样的格式。然而,xml文档中的数据格式不一定符合目标系统的规范。xmlt模板常被采用来把一种格式转换为另一种格式。不幸的是,xslt的方法仅仅提供一套有限的功能执行这些转换。
apache软件基金的xalan项目包括java和c++两种版本的xslt处理器。这个处理器提供解析xml文档的功能,并使用xslt模板来转换它们。除了标准的xslt转换以外,xalan也提供一把扩展方法。在扩展库提供的这些方法中,有一个字符串tokenizer把字符串分割成一组token。
问题领域
精确的一组xml转换用tokenize方法。任何时候,当你需要把字符串以一致的样式分解为子串,可以采用tokenize方法。实际上,tokenize方法是一个xslt方法,它带两个参数。第一个参数指定要被分割的字符串。第二个参数指定把字符串分解为一组字符串token的分隔符。
tokenize方法的结果是一组表示token的节点。这些token和节点可以使用iterator或者作为单个值来处理。你可以用tokenizer把字符串分解为一组单个值,从一个长字符串获取单个token。
例子
为了举例说明tokenize方法的用法,我们看一个使用它的例子。下面是包含需要我们分割的字符串的一个xml文档:
<customeraddress>
<address1>9399 w higgins street</address1>
<address2>rosemont, il 60018</address2>
</customeraddress>
这个例子演示了系统的一个客户地址记录,包含两行地址。这是在系统中一个相当普遍的情形,地址信息仅当发邮件时使用,而实际的城市、州和邮编信息并不特别重要。不幸的是,许多系统希望地址信息被分成城市、州和邮编。需要一个机制把组合的<address2>元素分成单独的城市、州和邮编元素。
方案
为了把数据以恰当的格式提供给目标系统,我使用xalan的tokenize扩展功能。这个方法基于一组分割符把一个字符串,比如像地址,分割成多个token。如果没有指定分割符,使用默认的空格符号作为分割符。在我们的例子中,使用的分割符包括空格符号和逗号。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器