小编dee*_*pak的帖子

将setParameter与节点集一起使用时,会引发异常“从java.lang.String到节点集的无效转换”

我正在尝试通过从Java代码中调用XSLT来转换XML。我在将XML字符串作为参数传递给XSLT时遇到问题。这将导致异常:从'java.lang.String'到'node-set'的无效转换。

这是调用XSLT的方法:

Transformer l_transformer
=TransformerFactory.newInstance().newTransformer(xslt_file_path);
l_transformer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
l_transformer.setParameter("collateralDoc", param_xmlString);

StringWriter l_writer = new StringWriter();
StringReader l_reader = new StringReader(inputXML);

Source l_in = new StreamSource(l_reader);
Result l_out = new StreamResult(l_writer);

l_transformer.transform(l_in, l_out);
Run Code Online (Sandbox Code Playgroud)

在搜索了一些解决方案之后,我什至尝试使用param XML字符串创建Document对象,并将Document对象传递给setParameter对象。然后我得到了这个例外:

从'com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl'到'node-set'的无效转换。

处理此输入XML参数的XSLT代码和引发异常的行: <xsl:variable name="infoList" select="$paramXML/a/b"/>

我需要作为参数传递的参数XML如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<a>
    <b>
        <c>
            <d>blah</d>
            <e>blah</e>
        </c>
        <f>
            <g>blah</g>
            <h>blah</h>
        </f>
    </b>
</a>
Run Code Online (Sandbox Code Playgroud)

请帮助我解决问题。

java xml xslt

5
推荐指数
1
解决办法
1809
查看次数

NamedParameterJdbcTemplate 批量大小

有没有办法为 Spring 的 NamedParameterJdbcTemplate 对象设置批量大小?

我在我的项目中遇到了一些 OutOfMemory 问题,但我能够通过在较小块的循环中调用 NamedParameterJdbcTemplate 来解决它。但这需要一些额外的努力,例如决定块大小,将大列表分解为较小的子列表等。

我想知道 NamedParameterJdbcTemplate 是否有任何这样的直接方式,我可以为它指定批量大小。我在 API 文档中没有看到任何内容。但是它们在 JDBCTemplate 中有一些东西。现在,如果我必须切换到 JDBCTemplate,我将不得不重做我的代码 :(

请建议。

java spring

5
推荐指数
1
解决办法
1246
查看次数

标签 统计

java ×2

spring ×1

xml ×1

xslt ×1