java xslt 2,XSLT 2.0 xsl:value-of分隔符属性在Java 1.7中无...

XSLT 2.0 xsl:value-of元素分隔符属性似乎不适用于内置Java 1.7 XSLT处理器.这是示例(从XSLT 2nd ed.的第4章略作编辑以减小大小):

XML文件

XSLT文件

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Java代码

import javax.xml.transform.*;

import javax.xml.transform.stream.StreamResult;

import javax.xml.transform.stream.StreamSource;

import java.io.File;

import java.io.IOException;

import java.net.URISyntaxException;

public class FooMain {

public static void main(String[] args) throws IOException, URISyntaxException, TransformerException {

TransformerFactory factory = TransformerFactory.newInstance();

System.out.println("transformer factory class: "+factory.getClass()); // line-a

Source xslt = new StreamSource(new File("transform.xslt"));

Transformer transformer = factory.newTransformer(xslt);

Source text = new StreamSource(new File("input.xml"));

transformer.transform(text, new StreamResult(new File("output.html")));

}

}

代码运行时,将产生以下输出文件:

Chevrolet

…与书中描述的相反:

Chevrolet, Ford, Volkswagen

我在Ubuntu Precise中使用Java 1.7,并且TransformerFactory实例的类名报告为(在上述Java代码的a行中),其内容为:

com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl

更新

我进行了实验,并将XSLT文件中的spacer属性重命名为SeparatorBOO,代码继续运行而不会抱怨,并产生完全相同的输出.因此,似乎XSLT 2.0分隔符属性根本无法识别?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值