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 |