Mik*_*ike 5 java xml xslt transform
我正在使用内置的Java XML Transformer将XML文档序列化为文本.当我在HTML模式下输出时,我遇到了问题.
每当我插入head元素时,内置变换器决定插入META带有内容类型数据的标记.我不想在我的数据中使用此标记,我似乎无法找到将禁用此功能的输出参数.我知道我可以构建一个xslt样式表并删除有问题的标签,但是只要能够在变换器本身上设置一个禁用它的参数就更简单了.
你可能会回答"但你真的应该有这个标签" - 相信我,我不需要它,为了简单起见我不会进入它.
示例代码
Document d;
//d = <html><head><title></title></head><body></body></html>
Transformer t; //properly inited with no xslt specified
t.setOutputProperty(OutputKeys.METHOD,"html");
t.setOutputProperty(OutputKeys.INDENT,"no");
t.transform(new DOMSource(d), result);
System.out.println(result);
Run Code Online (Sandbox Code Playgroud)
回报
<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title></title><style type="text/css"></style></head><body></body></html>
Run Code Online (Sandbox Code Playgroud)
例如,我不希望META那里有那个标签.如何以最简单的方式摆脱它?
更新:
我遇到了{http://xml.apache.org/xalan}omit-meta-tag应该做我正在寻找的选项.然而,它似乎被忽略了.
小智 5
尝试在下面添加:
trans.setOutputProperty(OutputKeys.METHOD, "xml");
trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
Run Code Online (Sandbox Code Playgroud)
这是一个复杂的情况,因为"{http://xml.apache.org/xalan}omit-meta-tag"内置的 java 转换似乎被忽略了。
所以简短的答案是下载类似 xalanj 的东西并手动将其放入类路径中。