|
Subject: [xsl] Issue with copying an element From: Microthunder <microthunder@xxxxxxxxx> Date: Wed, 20 Dec 2006 10:27:52 -0800 (PST) |
Hi All,
I am new to xsl programming. I am trying to copy an element and
paste it in the same level as the copied element. I am using some condition
to check for an element value to decide whether to copy of or not. I am using
2 xml files and a xsl. I have attached the xml and xsl files. In
contentA-format2.xml, I am checking for "zh_CN" value under
packageBody/importCon=
tentInstance/contentInstance/relation/attribute@language/valueString, if
"zh_CN" is not present, then I need to copy the entire <relation> node and
paste it under packageBody/importContentInstance/contentInstance/. And also I
need to apply the
<xsl:template
match=3D"relation[@name=3D'CONTENT-MANAGEMENT-CT-LITERATURE-TRANS']/*">
again
for the copied element.=0A=0AWhen I apply the xsl, the <relation> element is
getting copied inside the original =
<relation> itself.
contentA-format2.xml:-
<?xml version="1.0" encoding="UTF-8"?>
<packageBody>
<importWorkflow>
</importWorkflow>
<importContentType>
</importContentType>
<importContentType>
</importContentType>
<importContentInstance>
<group
name="VGNGRP_1" />
<contentInstance
vcmId="b3489d5648b9f010VgnVCM10000081141eacRCRD"
vcmLogicalPath="/www/Literature/FPD" vcmName="Testing - FPD 32">
<contentTypeId>
0d82968ac17b8010VgnVCM1000005e191eac____
</contentTypeId>
<attribute name="literature-id">
<valueString>
a3489d5648b9f010VgnVCM10000081141eac____
</valueString>
</attribute>
<attribute name="name">
<valueString>Testing - FPD 32</valueString>
</attribute>
<attribute name="brand">
<valueString></valueString>
</attribute>
<attribute name="type">
<valueString>SPECF</valueString>
</attribute>
<attribute name="format">
<valueString></valueString>
</attribute>
<attribute name="thumbnail">
<valueString></valueString>
</attribute>
<attribute name="revision-date">
<valueDate></valueDate>
</attribute>
<attribute name="owner">
<valueString></valueString>
</attribute>
<relation name="CONTENT-MANAGEMENT-CT-LITERATURE-TRANS">
<attribute name="CT-LITERATURE-TRANS-LITERATUREID">
<valueString>
a3489d5648b9f010VgnVCM10000081141eac____
</valueString>
</attribute>
<attribute name="trans-id">
<valueInt>81</valueInt>
</attribute>
<attribute name="title">
<valueString>FPD32 - English</valueString>
</attribute>
<attribute name="description">
<valueString>FPD32 -
English</valueString>
</attribute>
<attribute name="language">
<valueString>en_US</valueString>
</attribute>
<attribute name="file">
<valueString></valueString>
</attribute>
<attribute name="partnumber">
<valueString></valueString>
</attribute>
</relation>
<acl>
<entry name="vgnadmin" type="user">
<grants>
<capability
application="VCM"
name="MODIFY_TAX_ASSOCS" />
<capability
application="VCM" name="MODIFY" />
<capability application="VCM"
name="MODIFY_ACL" />
<capability application="VCM" name="DELETE" />
<capability application="VCM"
name="PROMOTE_AND_DEMOTE" />
<capability application="VCM"
name="SECURITY_READ" />
<capability
application="VCM"
name="DEPLOY_AND_UNDEPLOY" />
<capability
application="VCM"
name="FLSLITERATURECT_READ" />
<capability
application="VCM"
name="SECURITY_WRITE" />
<capability
application="VCM"
name="FLSLITERATURECT_WRITE" />
<capability
application="VCM"
name="WORKFLOW_DEF_READ" />
<capability
application="VCM"
name="FLSLITERATURECT_DELETE" />
</grants>
</entry>
</acl>
</contentInstance>
</importContentInstance>
</packageBody>
contentA-Translated.xml:-
<?xml version="1.0"
encoding="UTF-8"?>
<packageBody
xmlns="http://www.vignette.com/xmlschemas/importexport"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.vignette.com/xmlschemas/importexport
7202/packageBody.xsd">
<contentInstance
vcmID="b3489d5648b9f010VgnVCM10000081141eacRCRD">
<contentid>a3489d5648b9f010VgnVCM10000081141eac____</contentid>
<transid>81</transid>
<title>FPD32 - English</title>
<teaser />
<body />
<description>FPD32 - English 111</description>
<keywords />
<language>en_US</language>
</contentInstance>
<contentInstance
vcmID="b3489d5648b9f010VgnVCM10000081141eacRCRD">
<contentid>a3489d5648b9f010VgnVCM10000081141eac____</contentid>
<transid>81</transid>
<title>FPD32 - CHINESE</title>
<teaser />
<body />
<description>FPD32 - CHINESE</description>
<keywords />
<language>zh_CN</language>
</contentInstance>
</packageBody>
merge.xslt:-
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:vign="http://www.vignette.com/xmlschemas/importexport">
<xsl:output
method="xml" encoding="UTF-8" indent="yes"/>
<xsl:param name="xml2" />
<xsl:template match="/">
<xsl:apply-templates select="@*|node()"/>
</xsl:template>
<xsl:template
match="relation[@name='CONTENT-MANAGEMENT-CT-LITERATURE-TRANS']/*">
<xsl:variable name="tagName">
<xsl:value-of select="@name"/>
</xsl:variable>
<xsl:variable name="contentId"
select="../attribute[@name='CT-LITERATURE-TRANS-LITERATUREID']/valueString/te
xt()"/>
<xsl:variable name="language"
select="../attribute[@name='language']/valueString/text()"/>
<xsl:choose>
<xsl:when
test="exsl:node-set($xml2)/packageBody/contentInstance[contentid=$contentId
and language=$language]/*[local-name()=$tagName]">
<xsl:copy-of
select="exsl:node-set($xml2)/packageBody/contentInstance[contentid=$contentId
and language=$language]/*[local-name()=$tagName]"/>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template
match="//relation[@name='CONTENT-MANAGEMENT-CT-LITERATURE-TRANS']/attribute[@
name='language']">
<xsl:choose>
<xsl:when
test="/valueString/text() = 'zh_CN'">
</xsl:when>
<xsl:otherwise>
<xsl:for-each
select="//relation[@name='CONTENT-MANAGEMENT-CT-LITERATURE-TRANS']/attribute[
@name='language']">
<xsl:if test="valueString[.='en_US']">
<xsl:copy-of select=".."/>
<xsl:copy>
<xsl:copy-of
select="."/>
</xsl:copy>
</xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template
match="@*|node()">
<xsl:copy>
<xsl:apply-templates
select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Output should look like :-
<?xml version="1.0" encoding="UTF-8"?>
<packageBody>
<importWorkflow></importWorkflow>
<importContentType>
</importContentType>
<importContentType>
</importContentType>
<importContentInstance>
<group name="VGNGRP_1" />
<contentInstance
vcmId="b3489d5648b9f010VgnVCM10000081141eacRCRD"
vcmLogicalPath="/www/Literature/FPD" vcmName="Testing - FPD 32">
<contentTypeId>
0d82968ac17b8010VgnVCM1000005e191eac____
</contentTypeId>
<attribute name="literature-id">
<valueString>
a3489d5648b9f010VgnVCM10000081141eac____
</valueString>
</attribute>
<attribute name="name">
<valueString>Testing - FPD 32</valueString>
</attribute>
<attribute name="brand">
<valueString />
</attribute>
<attribute name="type">
<valueString>SPECF</valueString>
</attribute>
<attribute name="format">
<valueString />
</attribute>
<attribute
name="thumbnail">
<valueString />
</attribute>
<attribute
name="revision-date">
<valueDate />
</attribute>
<attribute
name="owner">
<valueString />
</attribute>
<relation
name="CONTENT-MANAGEMENT-CT-LITERATURE-TRANS">
<attribute
name="CT-LITERATURE-TRANS-LITERATUREID">
<valueString>
a3489d5648b9f010VgnVCM10000081141eac____
</valueString>
</attribute>
<attribute name="trans-id">
<valueInt>81</valueInt>
</attribute>
<attribute name="title">
<valueString>FPD32 - English</valueString>
</attribute>
<attribute name="description">
<valueString>FPD32 -
English</valueString>
</attribute>
<attribute name="language">
<valueString>en_US</valueString>
</attribute>
<attribute name="file">
<valueString />
</attribute>
<attribute name="partnumber">
<valueString />
</attribute>
</relation>
<relation
name="CONTENT-MANAGEMENT-CT-LITERATURE-TRANS">
<attribute
name="CT-LITERATURE-TRANS-LITERATUREID">
<valueString>
a3489d5648b9f010VgnVCM10000081141eac____
</valueString>
</attribute>
<attribute name="trans-id">
<valueInt>81</valueInt>
</attribute>
<attribute name="title">
<valueString>FPD32 - English</valueString>
</attribute>
<attribute name="description">
<valueString>FPD32 -
English</valueString>
</attribute>
<attribute name="language">
<valueString>en_US</valueString>
</attribute>
<attribute name="file">
<valueString />
</attribute>
<attribute name="partnumber">
<valueString />
</attribute>
</relation>
<acl>
<entry
name="vgnadmin" type="user">
<grants>
<capability application="VCM"
name="MODIFY_TAX_ASSOCS" />
<capability application="VCM" name="MODIFY"
/>
<capability application="VCM" name="MODIFY_ACL" />
<capability
application="VCM" name="DELETE" />
<capability application="VCM"
name="PROMOTE_AND_DEMOTE" />
<capability application="VCM"
name="SECURITY_READ" />
<capability application="VCM"
name="DEPLOY_AND_UNDEPLOY" />
<capability application="VCM"
name="FLSLITERATURECT_READ" />
<capability application="VCM"
name="SECURITY_WRITE" />
<capability application="VCM"
name="FLSLITERATURECT_WRITE" />
<capability application="VCM"
name="WORKFLOW_DEF_READ" />
<capability application="VCM"
name="FLSLITERATURECT_DELETE" />
</grants>
</entry>
</acl>
</contentInstance>
</importContentInstance>
</packageBody>
I appreciate if
you can help me how to resolve this issue.
Thanks
Chandar
__________________________________________________
Do You Yahoo!?
Tired of
spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] test for child element, Alexey Nickolaenkov | Thread | [xsl] Re: Behavior of document() Fu, Roger L. Cauvin |
| Re: [xsl] Safe-guarding codepoints-, Abel Braaksma | Date | [xsl] Re: Behavior of document() Fu, Roger L. Cauvin |
| Month |