有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用fop处理xml中的html标记

我有一个被转换成SAXSource的对象,然后用FOP转换成PDF。但是,一些数据在XML标记中是HTML格式的。我想让样式表将这些HTML标记解析为实际元素,这意味着要以其未转换的格式读取它,但我不知道如何做到这一点。我在样式表中设置了disable-output-escaping,但我认为XML中的数据在到达样式表并进行处理之前已经被解析为“转义”

下面是转换的代码

FOUserAgent foUserAgent = getUserAgent();
PDFRenderer pdfrenderer = new PDFRenderer(); 

pdfrenderer.setUserAgent(foUserAgent); 
foUserAgent.setRendererOverride(pdfrenderer);

URIResolver resolver = myWebContext.getResolver();
foUserAgent.setURIResolver(resolver);

ByteArrayOutputStream out = new ByteArrayOutputStream(); 
byte[] b = null;

try {
TransformerFactory factory = TransformerFactory.newInstance();

Transformer transformer = factory.newTransformer(); 
//transformer.setOutputProperty("disable-output-escaping", "yes");
// kicks back error --- invalid property

Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out); 
Source xsl = resolver.resolve(xslFilename, null);
transformer = factory.newTransformer(xsl); 
res = new SAXResult(fop.getDefaultHandler()); 
transformer.transform(xmlSrc, res); 
b = out.toByteArray();

共 (0) 个答案