Camel xslt组件从给定的xml数据中创建静态sql查询。

问题描述 投票:0回答:1

我想使用 camel xslt 组件从 xml 数据中创建一个 sql 查询。我已经尝试使用xsl文件(从xml文件创建)使用xslt组件创建html页面。但是没有足够的信息说明如何从camel xslt组件中生成sql查询。

我试过的方法如下。

xml data:

<?xml version="1.0"?>
<?xml-stylesheet href="employee-sql.xsl" type="text/xsl" ?>
<Employees>
    <employee>
    <empName>Abc</empName>
    <empAddress>Delhi</empAddress>
   </employee>
</Employees>

employee-sql.xsl文件。

<?xml version="1.0"?>
<xsl:stylesheet version="1.0">
 <xsl:template match="/" name="TemplateA">
  <xsl:param name="param">
  </xsl:param>
  <xsl:value-of select="/Employees/employee" />
 </xsl:template>
 <xsl:template match="/">
  <html>
<body>
<xsl:output method="xml" />

<xsl:template match="/"><xsl:apply-templates select="/Employees/employee" mode="normalize-space" /></xsl:template>

<xsl:template match="text()" mode="normalize-space"><xsl:value-of select="normalize-space(.)" /></xsl:template>
<xsl:template match="@*|node()" mode="normalize-space"><xsl:copy><xsl:apply-templates select="@*|node()" mode="normalize-space" /></xsl:copy></xsl:template>
   </body>
  </html>
 </xsl:template>
</xsl:stylesheet>

我在这里生成的xsl文件是从互联网资源中获取的。谁能告诉我,我如何创建用于生成sql查询的xsl文件(比如select * from {xml data} from xml data)?

xslt apache-camel
1个回答
0
投票

我认为最简单的方法是

  1. 将输出从XML转换为文本

<xsl:output method="text"/>

  1. 使用xpath concat函数生成SQL语句。
<xsl:variable name="table_name" select="mytable">
<xsl:value-of select="concat('SELECT * FROM ', $table_name)" />
© www.soinside.com 2019 - 2024. All rights reserved.