Xml 以下给定格式所需的XSLT映射帮助 公司00022639 地球信标 公司000226 GeoExplorer 2005系列
我需要将每一列映射成下面的xml格式Xml 以下给定格式所需的XSLT映射帮助 公司00022639 地球信标 公司000226 GeoExplorer 2005系列,xml,xslt,xslt-1.0,Xml,Xslt,Xslt 1.0,我需要将每一列映射成下面的xml格式 <i> <Row> <Column name="RecordID" sqltype="nvarchar">COMPANY00022639</Column> <Column name="product_name" sqltype="nvarchar">GeoBeacon</Column> </Row> <Row>
<i>
<Row>
<Column name="RecordID" sqltype="nvarchar">COMPANY00022639</Column>
<Column name="product_name" sqltype="nvarchar">GeoBeacon</Column>
</Row>
<Row>
<Column name="RecordID" sqltype="nvarchar">COMPANY000226</Column>
<Column name="product_name" sqltype="nvarchar">GeoExplorer 2005 Series</Column>
</Row>
</i>
我需要将每一行的每一列映射到两个不同的变量中,其中RecordID到Company_ID,product_name到xml中的product_name。
谁能帮我一下吗
最后,我需要我的结果集如下
<i>
<xsd:complexType name="remedyResponseObject">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="Company_ID" type="xsd:string"/>
<xsd:element minOccurs="1" maxOccurs="1" name="product_name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</i>
公司00022639
地球信标
公司000226
GeoExplorer 2005系列
您在这里不是映射到“变量”,而是将列元素映射到其他元素。在XSLT上下文中说“variable”可能意味着您希望使用xsl:variable,但这里的情况并非如此
尽管如此,进行映射还是很简单的。您只需创建一个模板来匹配需要更改的列元素,并输出希望映射到的新元素
例如,对于创建公司ID元素,模板如下所示
<i>
<remedyResponseObject>
<Company_ID>COMPANY00022639</Company_ID>
<product_name>GeoBeacon</product_name></remedyResponseObject>
<remedyResponseObject>
<Company_ID>COMPANY000226</Company_ID>
<product_name>GeoExplorer 2005 Series</product_name>
</remedyResponseObject>
</i>
对于产品名称也是如此
唯一的另一个模板是与根i元素匹配的模板,其中您只需输出相同的i元素,以及remedyResponseObject元素
试试这个XSLT
<xsl:template match="Column[@name='RecordID']">
<Company_ID><xsl:value-of select="." /></Company_ID>
</xsl:template>
当应用于输入XML时,将输出以下内容
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="i">
<xsl:copy>
<remedyResponseObject>
<xsl:apply-templates />
</remedyResponseObject>
</xsl:copy>
</xsl:template>
<xsl:template match="Column[@name='RecordID']">
<Company_ID><xsl:value-of select="." /></Company_ID>
</xsl:template>
<xsl:template match="Column[@name='product_name']">
<product_name><xsl:value-of select="." /></product_name>
</xsl:template>
</xsl:stylesheet>
公司00022639
地球信标
公司000226
GeoExplorer 2005系列
您尝试了什么xslt?在这种情况下是否可以显示您试图实现的输出?谢谢嗨,我已经更新了xml格式,我想在这里映射它。请告诉我这是否足够。
<i>
<remedyResponseObject>
<Company_ID>COMPANY00022639</Company_ID>
<product_name>GeoBeacon</product_name>
<Company_ID>COMPANY000226</Company_ID>
<product_name>GeoExplorer 2005 Series</product_name>
</remedyResponseObject>
</i>