Hello
I have written the following transform (modified an existing one)
the problem I am having is the field that is made up of two instances of
<xsl:apply-templates select = "head/docdata/key-list/keyword/@key"/>
which forms a field user08, I need a space between the two items. I am sure this is simple enough, but I am very new to XML.
Any help would be greatly appreciated
Thanks
Rich
<?xml version = "1.0" encoding = "UTF-8"?>
<xsl:transform xmlns:xsl = " version = "1.0">
<xsl:template match = "nitf">
<xsl:element name = "hpsc">
<xsl:element name = "hpsc-file">
<xsl:element name = "user-def-data">
<xsl:element name = "user-def-field">
<xsl:apply-templates select = "head/docdata/urgency/@ed-urg"/>
<xsl:apply-templates select = "head/docdata/doc-scope/@scope"/>
<xsl:apply-templates select = "head/meta/@content"/>
<xsl:apply-templates select = "head/docdata/series/@series.part"/>
<xsl:variable name = "concatUser08">
<xsl:apply-templates select = "head/docdata/key-list/keyword/@key"/>
</xsl:variable>
<xsl:element name = "user08">
<xsl:value-of select = "$concatUser08"/>
</xsl:element>
</xsl:element>
</xsl:element>
<xsl:element name = "iptc-field">
<xsl:apply-templates select = "body/body.head/distributor"/>
</xsl:element>
</xsl:element>
<xsl:element name = "nitf">
<xsl:element name = "body">
<xsl:element name = "body.head">
<xsl:element name = "hedline">
<xsl:apply-templates select = "body/body.head/hedline/hl1"/>
</xsl:element>
</xsl:element>
<xsl:apply-templates select = "body/body.content"/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match = "@content">
<xsl:if test = "../@name='channel' ">
<xsl:element name = "user03">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:if>
</xsl:template>
<xsl:template match = "@ed-urg">
<xsl:element name = "user06">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:template>
<xsl:template match = "@series.part">
<xsl:element name = "user01">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:template>
<xsl:template match = "@key">
<xsl:element name = "user08">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:template>
<xsl:template match = "@scope">
<xsl:element name = "user07">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:template>
<xsl:template match = "hl1">
<xsl:element name = "hl1">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:template>
<xsl:template match = "body.content">
<xsl:element name = "body.content">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:template>
<xsl:template match = "distributor">
<xsl:element name = "iptc-source">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:template>
</xsl:transform>
I have written the following transform (modified an existing one)
<xsl:apply-templates select = "head/docdata/key-list/keyword/@key"/>
which forms a field user08, I need a space between the two items. I am sure this is simple enough, but I am very new to XML.
Any help would be greatly appreciated
Thanks
Rich
<?xml version = "1.0" encoding = "UTF-8"?>
<xsl:transform xmlns:xsl = " version = "1.0">
<xsl:template match = "nitf">
<xsl:element name = "hpsc">
<xsl:element name = "hpsc-file">
<xsl:element name = "user-def-data">
<xsl:element name = "user-def-field">
<xsl:apply-templates select = "head/docdata/urgency/@ed-urg"/>
<xsl:apply-templates select = "head/docdata/doc-scope/@scope"/>
<xsl:apply-templates select = "head/meta/@content"/>
<xsl:apply-templates select = "head/docdata/series/@series.part"/>
<xsl:variable name = "concatUser08">
<xsl:apply-templates select = "head/docdata/key-list/keyword/@key"/>
</xsl:variable>
<xsl:element name = "user08">
<xsl:value-of select = "$concatUser08"/>
</xsl:element>
</xsl:element>
</xsl:element>
<xsl:element name = "iptc-field">
<xsl:apply-templates select = "body/body.head/distributor"/>
</xsl:element>
</xsl:element>
<xsl:element name = "nitf">
<xsl:element name = "body">
<xsl:element name = "body.head">
<xsl:element name = "hedline">
<xsl:apply-templates select = "body/body.head/hedline/hl1"/>
</xsl:element>
</xsl:element>
<xsl:apply-templates select = "body/body.content"/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match = "@content">
<xsl:if test = "../@name='channel' ">
<xsl:element name = "user03">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:if>
</xsl:template>
<xsl:template match = "@ed-urg">
<xsl:element name = "user06">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:template>
<xsl:template match = "@series.part">
<xsl:element name = "user01">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:template>
<xsl:template match = "@key">
<xsl:element name = "user08">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:template>
<xsl:template match = "@scope">
<xsl:element name = "user07">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:template>
<xsl:template match = "hl1">
<xsl:element name = "hl1">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:template>
<xsl:template match = "body.content">
<xsl:element name = "body.content">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:template>
<xsl:template match = "distributor">
<xsl:element name = "iptc-source">
<xsl:value-of select = "."/>
</xsl:element>
</xsl:template>
</xsl:transform>