Saxon处理器处理XML的转换(带查询数据库的),hold不住了,大家帮帮小弟我吧
Saxon处理器处理XML的转换(带查询数据库的),hold不住了,大家帮帮我吧
原XSLT文件,加载本地文件作为参数
现在想把上面文件的选择属性,选择从数据库中查询一个XML出来。
这里定义一个模版访问数据(访问数据库是正常的),查询XML,作为参数
当output method="xml" 时候,输出结果就是下面这个样子
当output method 设置为 text时候,输出正常为一个标准的XML。
但是我现在需要将output method为xml,但输出结果是一个正常的XML,该怎么做啊?
有什么xpath的函数,或者xsl有什么函数呢?可以将上面那个不是XML文件转换为XML文件。
求个方案,或者方法!hold 不住了!
------解决方案--------------------
没用过Saxon,是说不用数据库查询时候Saxon的输出都是正确的么?用XMLSpy也这样么?
原XSLT文件,加载本地文件作为参数
- XML code
<!-- set output --> <xsl:output method="xml" encoding="UTF-8" indent="yes"/> <!-- load other xml as param--> <xsl:param name="Articles2" select="'../Articles.xml'"/> <!-- 这里加载的本地文件 --> <xsl:param name="ShortPO2" select="'../ShortPO.xml'"/>
现在想把上面文件的选择属性,选择从数据库中查询一个XML出来。
这里定义一个模版访问数据(访问数据库是正常的),查询XML,作为参数
- XML code
<xsl:param name="ShortPO2"> <xsl:variable name="xsltstr"> <!-- 调用模版 --> <xsl:call-template name="getXSLT"> <!-- 设置参数 --> <xsl:with-param name="jdbc.driver">com.microsoft.sqlserver.jdbc.SQLServerDriver</xsl:with-param> <xsl:with-param name="jdbc.database" as="xsd:string" select="string('jdbc:sqlserver://localhost:1433;databaseName=CnnTest')"/> <xsl:with-param name="table" select="string('dbo.xslt')"/> <xsl:with-param name="where" select="string('id=2')"/> </xsl:call-template> </xsl:variable> <xsl:value-of select="string($xsltstr)"/> </xsl:param> <xsl:template match="/"> <!-- 输出参数的值 --> <xsl:value-of select="$ShortPO2"/> </xsl:template>
当output method="xml" 时候,输出结果就是下面这个样子
- XML code
<?xml version="1.0" encoding="UTF-8"?>
 <ShortPO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:noNamespaceSchemaLocation="ShortPO.xsd">
 <CustomerNr>3</CustomerNr>
 <LineItems>
 <LineItem>
 <ArticleNr>3</ArticleNr>
 <Amount>5</Amount>
 </LineItem>
 <LineItem>
 <ArticleNr>1</ArticleNr>
 <Amount>17</Amount>
 </LineItem>
 </LineItems>
 </ShortPO>
当output method 设置为 text时候,输出正常为一个标准的XML。
- XML code
<?xml version="1.0" encoding="UTF-8"?> <ShortPO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ShortPO.xsd"> <CustomerNr>3</CustomerNr> <LineItems> <LineItem> <ArticleNr>3</ArticleNr> <Amount>5</Amount> </LineItem> <LineItem> <ArticleNr>1</ArticleNr> <Amount>17</Amount> </LineItem> </LineItems> </ShortPO>
但是我现在需要将output method为xml,但输出结果是一个正常的XML,该怎么做啊?
有什么xpath的函数,或者xsl有什么函数呢?可以将上面那个不是XML文件转换为XML文件。
求个方案,或者方法!hold 不住了!
------解决方案--------------------
没用过Saxon,是说不用数据库查询时候Saxon的输出都是正确的么?用XMLSpy也这样么?