首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

Saxon处理器处理XML的转换(带查询数据库的),hold不住了,大家帮帮小弟我吧

2012-03-24 
Saxon处理器处理XML的转换(带查询数据库的),hold不住了,大家帮帮我吧原XSLT文件,加载本地文件作为参数XML

Saxon处理器处理XML的转换(带查询数据库的),hold不住了,大家帮帮我吧
原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
&lt;?xml version="1.0" encoding="UTF-8"?&gt;&#xD;&lt;ShortPO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" &#xD;    xsi:noNamespaceSchemaLocation="ShortPO.xsd"&gt;&#xD;    &lt;CustomerNr&gt;3&lt;/CustomerNr&gt;&#xD;    &lt;LineItems&gt;&#xD;        &lt;LineItem&gt;&#xD;            &lt;ArticleNr&gt;3&lt;/ArticleNr&gt;&#xD;            &lt;Amount&gt;5&lt;/Amount&gt;&#xD;        &lt;/LineItem&gt;&#xD;        &lt;LineItem&gt;&#xD;            &lt;ArticleNr&gt;1&lt;/ArticleNr&gt;&#xD;            &lt;Amount&gt;17&lt;/Amount&gt;&#xD;        &lt;/LineItem&gt;&#xD;    &lt;/LineItems&gt;&#xD;&lt;/ShortPO&gt;


当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也这样么?


[解决办法]
单就这个例子而言

XML code
<xsl:param select="<?xml version="1.0" encd?><ShortPO>.......</ShortPO>"> 

热点排行