Я извлекаю данные из двух таблиц CARRIER_IFTA, IFTA_NAME. My Select Query как ниже ..Как сгенерировать XML из базы данных
SELECT t1.IFTA_LICENSE_NUMBER,t1.IFTA_BASE_STATE,t2.NAME_TYPE,t2.NAME
from CARRIER_IFTA t1 inner join IFTA_NAME t2
on t1.IFTA_LICENSE_NUMBER=t2.IFTA_LICENSE_NUMBER
Мои данные приходит таким образом ...
IFTA_LICENSE_NUMBER IFTA_BASE_STATE NAME_TYPE NAME
--------------------------------------------------------
630908333 US LG XYZ
630908333 US MG PQR
730908344 US LG ABC
Теперь с помощью XSLT Я хочу, чтобы генерировать XML, как это
<T0019>
<IFTA_ACCOUNT>
<IFTA_LICENSE_NUMBER>630908333</IFTA_LICENSE_NUMBER>
<IFTA_BASE_STATE>US</IFTA_BASE_STATE>
<IFTA_NAME>
<NAME_TYPE>LG<NAME_TYPE>
<NAME>XYZ</NAME>
</IFTA_NAME>
<IFTA_NAME>
<NAME_TYPE>MG<NAME_TYPE>
<NAME>PQR</NAME>
<IFTA_NAME>
</IFTA_ACCOUNT>
<IFTA_ACCOUNT>
<IFTA_LICENSE_NUMBER>730908344</IFTA_LICENSE_NUMBER>
<IFTA_BASE_STATE>US</IFTA_BASE_STATE>
<IFTA_NAME>
<NAME_TYPE>LG<NAME_TYPE>
<NAME>ABC</NAME>
</IFTA_NAME>
</IFTA_ACCOUNT>
</T0019>
я использовал ниже xslt, но это не дает мне результат желания ...
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/ROWSET">
<xsl:element name="T0019">
<xsl:apply-templates select="IFTAACCOUNT"/>
</xsl:element>
</xsl:template>
<xsl:template match="IFTAACCOUNT">
<xsl:element name="IFTAACCOUNT">
<xsl:apply-templates select="IFTA_CARRIER_ID_NUMBER"/>
</xsl:element>
</xsl:template>
<xsl:template match="IFTA_LICENSE_NUMBER">
<xsl:element name="IFTA_LICENSE_NUMBER">
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<xsl:template match="IFTA_BASE_STATE">
<xsl:element name="IFTA_BASE_STATE">
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<xsl:template match="IRP_NAME">
<IRP_NAME>
<xsl:apply-templates select="NAME"/>
<xsl:apply-templates select="NAME_TYPE"/>
</IRP_NAME>
</xsl:template>
<xsl:template match="NAME">
<xsl:element name="NAME">
<xsl:value-of select="." />
</xsl:element>
</xsl:template>
<xsl:template match="NAME_TYPE">
<xsl:element name="NAME_TYPE">
<xsl:apply-templates />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
но это не дает результата желание ...
Пожалуйста, помогите мне ...
Заранее спасибо ...
Можете ли вы дать образец XML, который вы передаете XSLT? Ваш запрос возвращает простой набор строк и поэтому должен, по крайней мере, преобразовать XML где-нибудь перед применением XSLT. –
Actully Я пытаюсь преобразовать его непосредственно из базы данных в XML с помощью XSLT. Должен ли я генерировать Intermidiate XML, а затем преобразовать его в My Result xml? –
Да, XSLT может преобразовывать XML только в нечто другое. Я не знаю, как использовать XSLT для чтения чего-то другого, кроме XML. – ilikeorangutans