javax.xml.transform.TransformerException: XML-22103: (Fatal Error) DOMResult can

Caused by: javax.xml.transform.TransformerException: XML-22103: (Fatal Error) DOMResult can not be this kind of node.
	at oracle.xml.jaxp.JXTransformer.reportException(JXTransformer.java:917)
	at oracle.xml.jaxp.JXTransformer.transform(JXTransformer.java:371)
	at org.docx4j.org.xhtmlrenderer.resource.XMLResource$XMLResourceBuilder.createXMLResource(XMLResource.java:190)
	at org.docx4j.org.xhtmlrenderer.resource.XMLResource.load(XMLResource.java:75)
	at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.convert(XHTMLImporterImpl.java:649)
	... 3 more

错误位置:

        for (Object p : paragraphs) {
             List<Object> texts = getAllElementFromObject(p, Text.class);
             for (Object t : texts) {
                 Text content = (Text) t;
              if (content.getValue().equals(placeholder)) {
                  toReplace = (P) p;
                  break;
              }
             }
        }
        XHTMLImporterImpl XHTMLImporter = new XHTMLImporterImpl(template);
        XHTMLImporter.setHyperlinkStyle("Hyperlink");
        try {
            toReplace.getContent().addAll(XHTMLImporter.convert(htmlToAdd, null) );
        } catch (Docx4JException e) {
            e.printStackTrace();
        } catch (JAXBException e) {
            e.printStackTrace();
        }
 

 

 

错误原因:寻找实现JAXP规范的XML解析器来解析XML文档,刚好xmlparserv2实现了JAXP规范,但它是用来解析Oracle XMLType类型的

 

 

修改方法:寻找另一个实现JAXP规范的XML解析器:xalan

xalan.jarxercesImpl.jarserializer.jar三个jar引入

在需要的地方强制调用

   System.setProperty("javax.xml.transform.TransformerFactory", "org.apache.xalan.processor.TransformerFactoryImpl");

    System.clearProperty("javax.xml.transform.TransformerFactory");

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值