当前位置: 首页 > 知识库问答 >
问题:

TransformerConfiguration异常:无法设置Transformer的功能

林绪
2023-03-14

我在为TransformerFactory设置功能时遇到以下错误。

javax.xml.transform.TransformerConfigurationException: Cannot set the feature 'http://apache.org/xml/features/disallow-doctype-decl' on this TransformerFactory.
        at org.apache.xalan.processor.TransformerFactoryImpl.setFeature(TransformerFactoryImpl.java:416)

代码段为::

public static TransformerFactory mytFactory;

mytFactory = TransformerFactory.newInstance();
mytFactory.setFeature(“http://apache.org/xml/features/disallow-doctype-decl“, true);

请帮我解决这个问题。

共有1个答案

淳于烈
2023-03-14

我也未能调用TransformerFactoryImpl的方法“setFeature”。我找到了使用XMLReader设置功能的其他方法,如下所示:

XMLReader reader = XMLReaderFactory.createXMLReader();
reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);

Source xmlSource = new SAXSource(reader, new InputSource(new FileInputStream(xmlFile)));
Transformer transformer = TransformerFactory.newInstance().newTransformer();
StreamResult result = new StreamResult(new StringWriter());
transformer.transform(xmlSource, result);

在该设置之后,如果输入内部有DOCTYPE标记,我们将有以下异常:

javax.xml.transform.TransformerException: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 10; DOCTYPE is disallowed when the feature "http://apache.org/xml/features/disallow-doctype-decl" set to true.
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:749)
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:351)
    at ch.ofwi.pa.webservice.provideraccounting.impl.handler.SchemaValidationHandler.main(SchemaValidationHandler.java:227)
Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 10; DOCTYPE is disallowed when the feature "http://apache.org/xml/features/disallow-doctype-decl" set to true.
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1239)
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:668)
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:737)

希望对你有帮助。

 类似资料:
  • 我想使用Python 3部署一个Flask应用程序。我正在运行Ubuntu 16.04,Apache2。 我运行sudo apt-get install libapache2-mod-wsgi-py3来安装wsgi。 我遵循了这里的指示。我的Linode服务器上有一个Flask应用程序,位于/var/www/html/hxueh。净额/财务。财务文件夹中有一个文件和一个文件夹。结构看起来像这样。

  • 问题内容: 我正在使用hibernate和hql在Java代码中进行查询。但是我有这样一个例外: 我不明白“ 0”的含义。以下是一些带有示例的细节: 我有几个表加入hql。表格如下: 类: hql: 查询: 结果是对象“ A”的列表,其中包含收集的长度和单位。我不明白为什么会遇到这个例外。请给一些建议。 更新: 我编写了一个ResultTransformer并输出所有“别名”以查看问题: 似乎它还

  • 问题内容: 我有一个要映射到一个类的SQL查询。我正在使用Hibernate的createSQLQuery,然后将Result Transformer用于要映射到的类。但是Hibernate抛出此错误: 据我所知,这意味着我的构造函数是错误的。它设置为public,并且为空。不知道我还要在这里做什么? 从pgadmin运行时,SQL查询工作正常。在这里,我使用addScalar设置了所有字段,因为

  • 问题内容: 对于这个先前的问题,我将Selenium更新为2.0.1版,但是现在我又遇到了另一个错误,即使配置文件位于以下位置: 怎么了?我该如何解决这个问题? 问题答案: 更新: 硒团队已修复最新版本。对于几乎所有环境,修复程序都是: 点安装-U硒 尚不清楚它是在哪个版本上修复的(显然是r13122),但肯定是在2.26.0(更新时为最新)上已修复。 此错误意味着_wait_until_conn

  • 所以 我有一个函数,有一个回调,所以我把它包装在一个挂起函数使用,但当它错误了,它是崩溃整个应用程序。 这里有一个概念是正在发生的事情。 2022-03-04 16:09:45.410 19289-19438/in.app.androidE/AndreidRuntime: FATAL EXCEPTION: DefaultDispatcher-Worers-3进程:in.app.android,PI