2009-10-13 4 views
0

Salut les amis, j'espère que tout va bien. J'ai un problème dans mon fichier xml, c'est-à-dire que dans un ensemble certains éléments existent et dans le prochain set il n'existe pas, donc je veux créer les éléments qui n'existent pas dans l'ensemble. Ci-dessous suit mon fichier xml. Pls. Aidez moi.Création d'un élément vide s'il n'existe pas

<Jobs> 
    <Job> 
    <Job_ID>80000000</Job_ID> 
    <PositionID>60000002</PositionID> 
    <Title>Development Manager - Investment Banking - Equities Business</Title> 
    <Summary>An experienced Development Manager with previous experience leading a small to mid-size team of developers in a Java/J2EE environment. A hands on role, you will be expected to manage and mentor a team of developers working on a mix of greenfield and maintenance projects.&#160;&#160; My client, a well known investment bank, requires an experienced Development Manager to join their core technology team. This t</Summary> 
    <DateActive>10/6/2009</DateActive> 
    <DateExpire>11/5/2009</DateExpire> 
    <DateUpdated>10/6/2009</DateUpdated> 
    <Country>Country</Country> 
    <State>state</State> 
    <City>city</City> 
    <PostalCode>2000</PostalCode> 
    <CompanyName>Ambition Technology</CompanyName> 
    <BuilderFields /> 
    <DisplayOptions /> 
    <AddressType>6</AddressType> 
    </Job> 
    <Job> 
    <Job_ID>83790557</Job_ID> 
    <PositionID>61220512</PositionID> 
    <Title>SQL/VB Analyst Programmers With Strong Client Facing Skills $60 - $80K</Title> 
    <Summary>Excellent Location New Technologies Career Potential My client is a fast paced IT company in Consultancy based in Inner West of Sydney. My client is experiencing a large amount of growth due to new exciting projects which they have won due to their impressive reputation and quality of work. Due to the large amount of growth my client is experiencing they are looking to take on&#160;3 Analyst/Programmer</Summary> 
    <DateActive>10/5/2009</DateActive> 
    <DateExpire>11/4/2009</DateExpire> 
    <DateUpdated>10/5/2009</DateUpdated> 
    <Country>Australia</Country> 
    <State>NSW</State> 
    <City>Sydney</City> 
    <PostalCode>2000</PostalCode> 
    <CompanyName>Skill Quest</CompanyName> 
    <SalMin>30000</SalMin> 
    <SalMax>70000</SalMax> 
    <SalType>Per Year</SalType> 
    <SalCurrency>AUD</SalCurrency> 
    <BuilderFields /> 
    <DisplayOptions /> 
    <AddressType>6</AddressType> 
    </Job> 
</Jobs> 

Alors, je veux ajouter un nouvel élément comme Salmin, SalMax, SalType et SalCurrency comme éléments vides si elles ne sont pas existe. Et ce que je veux faire en utilisant la transformation xslt.

+0

Je veux ajouter un nouvel élément comme Salmin, SalMax, SalType et SalCurrency comme éléments vides si elles ne sont pas existe. –

+0

À quel moment devez-vous faire cela? Par exemple lors de la conversion de classe en XML ou avez-vous déjà un fichier XML et que vous souhaitez mettre à jour? – Preets

Répondre

3
<xsl:template name="ApplyTemplatesOrCreate"> 
    <xsl:param name="elemName" select="''" /> 
    <xsl:param name="elemDefault" select="''" /> 

    <xsl:variable name="elem" select="*[name() = $elemName]" /> 

    <xsl:choose> 
    <xsl:when test="$elem"> 
     <xsl:apply-templates select="$elem" /> 
    </xsl:when> 
    <xsl:otherwise> 
     <xsl:if test="$elemName != ''"> 
     <xsl:element name="{$elemName}"> 
      <xsl:value-of select="$elemDefault" /> 
     </xsl:element> 
     </xsl:if> 
    </xsl:otherwise> 
    </xsl:choose> 
</xsl:template> 

appel comme:

<xsl:call-template name="ApplyTemplatesOrCreate"> 
    <xsl:with-param name="elemName" select="'SalMin'" /> 
    <xsl:with-param name="elemDefault" select="'1000'" /> 
</xsl:call-template> 
+0

+1 grande réponse - ne pouvait pas l'avoir dit mieux :-) –

+0

Merci pour votre réponse, mais monsieur je ne vous ai pas comment dois-je les utiliser dans mon xslt existant. –

+1

En dehors du fait que vous n'avez pas montré votre XSLT existant - un peu de réflexion de votre propre ne peut pas être trop demander. – Tomalak

Questions connexes