尊敬的Stackoverflow社区。 p>
我的XSLT / XML有问题。
即使我试图在数据库表中包括我的XML文件,它也会说它不会打开我的xml文件。
我尝试通过以下方式将其包括在内:
<statement format="yyyy-MM-dd" resulttag="object" timezone="CET">
<sql>
INSERT INTO [DATABASENAME].[TABLENAME] ([XML], [FILENAME]) VALUES (
'<xsl:value-of select="Request" />', <xsl:value-of select="FileName" />
)
</sql>
</statement>
我在这个项目中使用了JDBC连接适配器,所以它理解了我想要的内容,但是重点是,它不想包括SQL-XML实体的XML结果...
我搜索并尝试了很多方法,但没有任何效果。
---编辑---
这是我的XSLT的第二个版本,该版本也不起作用。
<ROOT>
<xsl:variable name="Database">
<xsl:value-of select="DatabaseName.TableName"></xsl:value-of>
</xsl:variable>
<xsl:variable name="SQL_StatementI">
<xsl:copy-of select="Request"></xsl:copy-of>
</xsl:variable>
<xsl:variable name="SQL_StatementII">
<xsl:copy-of select="Request/Headers/Header/Name"></xsl:copy-of>
</xsl:variable>
<preparedstatement format="dd.MM.yyyy HH:mm:ss" resulttag="IndexData">
<sql>
insert into <xsl:value-of select="$Database"></xsl:value-of> (IndexData, FileName) values (?,?)
</sql>
<columns>
<column mode="in" name="IndexData" index="1" type="XML"></column>
<column mode="in" name="FileName" index="2" type="varchar"></column>
</columns>
<rowset>
<row>
<IndexData>
<xsl:copy-of select="$SQL_StatementI"></xsl:copy-of>
</IndexData>
<FileName>
'<xsl:value-of select="$SQL_StatementII"></xsl:value-of>'
</FileName>
</row>
</rowset>
</preparedstatement>
</ROOT>
相同的数据库“相同的结果”,但没有数据库的结果...
以下是此版本的错误消息:
Database operation failed: Invalid node type. Cannot add node: org.dom4j.tree.DefaultText@64dbd619 [Text: "
"] to this branch: org.dom4j.tree.DefaultDocument@31c6927c [Document: name null]
我知道这是Java错误,但我不知道如何修复xslt java编译器或该错误意味着什么...
P.S .:我使用XSLT“脚本”获取并读取了XML文件,该文件可以正常工作,并且输出也可以正常工作。只有JDBC连接适配器或MSSQL Server不想做我想要的事情。