Создание пустого элемента, если не существует

Привет, друзья, надеюсь, у вас все хорошо. У меня есть проблема в моем файле XML, то есть в одном наборе определенные элементы существуют, а в следующем наборе его нет, поэтому я хочу создать те элементы, которые не существуют в наборе. Ниже следует мой XML-файл. Pls. Помоги мне.

<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>

Итак, я хочу добавить новый элемент, такой как SalMin, SalMax, SalType и SalCurrency как пустые элементы, если они не существуют. И это я хочу сделать при использовании преобразования xslt.

13.10.2009 09:57:58
Я хочу добавить новые элементы, такие как SalMin, SalMax, SalType и SalCurrency как пустые элементы, если они не существуют.
user186149 13.10.2009 10:04:18
В какой момент вам нужно это сделать? Например, при преобразовании из класса в XML или у вас уже есть файл XML и вы хотите обновить его?
Preets 13.10.2009 10:08:43
1 ОТВЕТ
<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>

называть как:

<xsl:call-template name="ApplyTemplatesOrCreate">
  <xsl:with-param name="elemName" select="'SalMin'" />
  <xsl:with-param name="elemDefault" select="'1000'" />
</xsl:call-template>
3
13.10.2009 10:23:35
Спасибо за ваш ответ, но сэр, я не понял, как мне использовать их в моем существующем xslt.
user186149 13.10.2009 10:44:17
Помимо того факта, что вы не показали свой существующий XSLT - немного подумать о своем не может быть слишком много, чтобы спросить.
Tomalak 13.10.2009 11:37:02
Может быть, я беспокою тебя. хорошо, никаких проблем. Я попробую, сэр.
user186149 13.10.2009 12:20:19
Большое спасибо за ваш быстрый ответ и помощь.
user186149 13.10.2009 12:45:58