2014-02-27 55 views
0

我需要結合兩個變量,一個是像'11223344'的數字,另一個是像'AB'這樣的兩個字母。XSL - 需要幫助結合兩個變量請

結果我期待:「AB11223344」

這裏是我的代碼至今:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    <xsl:output method="xml"/> 
    <xsl:template match="/dataset"> 
     dataset> 
      <xsl:variable name="modPatientID" select="attr[@tag='00100020']"/> 
      <xsl:variable name="AccNum" select="attr[@tag='00080050']"/> 
      <xsl:variable name="Prefix" select="AB"/> 
      <!-- (0008,0050) Accession_Number --> 
      <xsl:if test="string-length($modPatientID)=8"> 
       <xsl:if test="contains($AccNum,'_')"> 
        <attr tag="00100020" vr="LO"> 
         <xsl:value-of select="concat($Prefix, $modPatientID)"/> 
        </attr> 
       </xsl:if> 
      </xsl:if> 
     </dataset> 
    </xsl:template> 
</xsl:stylesheet> 

這看起來正確的我,但它似乎並沒有做什麼,我很期待。輸出只是'11223344',我正在尋找'AB11223344'

有沒有人有任何想法?

謝謝

回答

0

select屬性是XPath表達式,所以

<xsl:variable name="Prefix" select="AB"/> 

將可變$Prefix設置爲包含所有當前上下文節點下名爲AB子元素的節點集。如果沒有這樣的元素,那麼結果集將是空的,這就是爲什麼你沒有獲得前綴。

如果您希望變量包含字符串AB那麼你需要引用它:

<xsl:variable name="Prefix" select="'AB'"/> 

這裏select表達式是一個字符串,而不是一個位置路徑。

+0

非常好!工作出色,我想我很接近,但無能爲力:) – Docjay