xsl 转换 xml 文档
发布时间:2020-12-15 22:46:09 所属栏目:百科 来源:网络整理
导读:xml: ?xmlversion="1.0"encoding="UTF-8"?tablename="student"id="444"columnscolumnname="name"id="22222"tableId="222221"dataType="varchar"length="2"comment="dddd"uuid="33333"isPk="1"default=""/column!--columnname=""id=""tableId=""dataType=""le
xml: <?xmlversion="1.0"encoding="UTF-8"?> <tablename="student"id="444"> <columns> <columnname="name"id="22222"tableId="222221"dataType="varchar"length="2"comment="dddd"uuid="33333"isPk="1"default=""></column> <!-- <columnname=""id=""tableId=""dataType=""length=""comment=""uuid=""isPk="0"></column>--> <!-- <columnname=""id=""tableId=""dataType=""length=""comment=""uuid=""isPk="0"></column>--> <!-- <columnname=""id=""tableId=""dataType=""length=""comment=""uuid=""isPk="0"></column>--> </columns> </table> xsl: <?xmlversion="1.0"encoding="UTF-8"?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:templatematch="/"> <!--TODO:Auto-generatedtemplate--> <xsl:apply-templatesselect="table"></xsl:apply-templates> </xsl:template> <!-- 转换table--> <xsl:templatematch="table"> <h6> --<xsl:value-ofselect="./@name"></xsl:value-of>表:<xsl:value-ofselect="./@comnent"></xsl:value-of> createTable<xsl:value-ofselect="./@name"></xsl:value-of>( <!--判断是否多主键--> <xsl:apply-templatesselect="columns/column"></xsl:apply-templates> <xsl:iftest="count(//@isPk)>0"> --TODO联合主键,CONSTRAINT<xsl:value-ofselect="./@name"></xsl:value-of>_PKprimarykey( <xsl:iftest="//column[@isPk=1]"><xsl:apply-templatesselect="//column[@isPk=1]"></xsl:apply-templates><!--<xsl:value-ofselect="//column[@isPk=1]"></xsl:value-of>--></xsl:if><xsl:iftest="position()!=last()">, </xsl:if>) </xsl:if> ) </h6> </xsl:template> <!-- 转换column--> <xsl:templatematch="columns/column"> <xsl:value-ofselect="./@name"></xsl:value-of> <!-- 判断是否有输入长度 --> <xsl:iftest="string-length(./@length)>0"> <xsl:value-ofselect="./@dataType"></xsl:value-of></xsl:if> <xsl:iftest="string-length(./@default)>0">default<xsl:value-ofselect="./@default"></xsl:value-of></xsl:if> <xsl:iftest="string-length(./@comment)>0">comment<xsl:value-ofselect="./@comment"></xsl:value-of></xsl:if> <!-- 判断是否主键 <xsl:iftest="number(./@isPk)=1">primarykey</xsl:if>--> <xsl:iftest="position()!=last()">, </xsl:if> </xsl:template> <xsl:templatematch="//column[@isPk=1]"> <xsl:value-ofselect="./@name"></xsl:value-of> <xsl:iftest="position()!=last()">, </xsl:if> </xsl:template> </xsl:stylesheet> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |