java - 使用 XSLT 将 XML 输出转换为 HTML 表
问题描述
我有一个 java servlet,它从 java 程序的返回中获取 XML 字符串。我想将此 XML 字符串转换为 HTML 表(不是文件,如果可能的话)并让我的servlet 显示它。
使用 XSLT 对我来说似乎是一个不错的选择,所以我编写了一个 XSL 文件。但是,我不知道如何从这里开始。我在网上看到了不同的代码片段,但它们都使用 XML 文件,而不是从另一个程序输出的 XML 字符串,所以它们不适合我。我在上面找不到任何东西,而且我对后端还很陌生......所以我会很感激一些帮助或想法或链接或其他任何东西。谢谢!
解决方案
您可以使用 JAXP API 包来完成此操作javax.xml.transform
。
这是我使用的代码:
public static void doXsltTransform( StreamSource sourceXml, StreamSource xslt, StreamResult resultXml ) throws TransformerException {
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer( xslt );
transformer.setOutputProperty( OutputKeys.ENCODING, "UTF-8" );
transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
transformer.transform( sourceXml, resultXml );
}
你可以像这样调用它:
InputStream inputStream = // some input stream from whereever
OutputStream out = // where you want to write the XML/HTML
StreamSource sourceXml = new StreamSource( inputStream );
StreamSource xslt = new StreamSource( inpStreamOfYourXSLT );
StreamResult resultXml = new StreamResult( out );
doXsltTransform( sourceXml, xslt, resultXml );
这些是进口:
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
推荐阅读
- firebase - Firebase云功能无法上传简单的txt文件
- r - R中数据框长度不同的复杂且大型嵌套列表列表
- ios - Google MLKit 人脸检测适用于 iPhone 6s,但不适用于 iPhone X
- python-3.x - 如何在python中对二维列表进行排序
- react-native - React Native Redux 问题
- javascript - 当有超过 2 行元素时,页面底部被切断?
- c - C 中的变量声明 - 解析器 flex/bison
- dart - 如何对 ByteBuffer 进行切片
- c++ - VS 2015 LINK 错误无法构建依赖于 libcurl 的项目
- mysql - WP CLI 声称数据库需要修复,但 WP 本身可以工作