2015-08-08 53 views
0

我試圖修復這個XML/XSLT代碼的多值問題,但似乎無法弄清楚什麼是錯的。對於一些員工(不是全部),他們在輸出文件上的記錄包含多個SSN值。這對接收系統造成了問題,因爲它只是期待一個值。任何幫助都會很棒;我很欣賞,因爲我非常堅持這一點,需要在36小時內提交報告。非常感謝。 (附上XML文件代碼和XSLT代碼)從XSLT中刪除多個值

XML:

<?xml version="1.0" encoding="UTF-8"?> 
    <pi:Payroll_Extract_Employees xmlns:pi="urn:com.workday/picof"> 
     <pi:PayGroup> 
      <pi:Header> 
       <pi:Version>18</pi:Version> 
       <pi:Payroll_Company_ID>25G</pi:Payroll_Company_ID> 
       <pi:Payroll_Company_Name>Acme.net</pi:Payroll_Company_Name> 
       <pi:Pay_Group_ID>G85D6W87D</pi:Pay_Group_ID> 
       <pi:Pay_Group_Name>G85D6W87D Semi-monthly</pi:Pay_Group_Name> 
       <pi:Pay_Period_Start>2013-02-16-08:00</pi:Pay_Period_Start> 
       <pi:Pay_Period_End>2013-02-28-08:00</pi:Pay_Period_End> 
       <pi:Updated_From>2013-02-28T18:00:15.171-08:00</pi:Updated_From> 
       <pi:Updated_To>2013-03-07T12:25:36.860-08:00</pi:Updated_To> 
       <pi:All_Effective>false</pi:All_Effective> 
      </pi:Header> 
      <pi:Employee> 
       <pi:Summary> 
        <pi:Employee_ID>1332</pi:Employee_ID> 
        <pi:Name>Robert Paulson</pi:Name> 
        <pi:Payroll_Company_ID>25G</pi:Payroll_Company_ID> 
        <pi:Payroll_Company_Name>Acme.net</pi:Payroll_Company_Name> 
        <pi:Pay_Group_ID>G85D6W87D</pi:Pay_Group_ID> 
        <pi:Pay_Group_Name>G85D6W87D Semi-monthly</pi:Pay_Group_Name> 
       </pi:Summary> 
       <pi:Personal> 
        <pi:First_Name>Robert</pi:First_Name> 
        <pi:Middle_Name>B</pi:Middle_Name> 
        <pi:Last_Name>Paulson</pi:Last_Name> 
        <pi:Gender>M</pi:Gender> 
        <pi:Birth_Date>1972-07-19</pi:Birth_Date> 
        <pi:Marital_Status>S</pi:Marital_Status> 
        <pi:First_Address_Line_Data pi:Label="Address Line 1" pi:Type="ADDRESS_LINE_1">5555 
         Marcos Street</pi:First_Address_Line_Data> 
        <pi:First_Municipality>San Diego</pi:First_Municipality> 
        <pi:First_Region>CA</pi:First_Region> 
        <pi:First_Postal_Code>92109</pi:First_Postal_Code> 
        <pi:Area_Code>619</pi:Area_Code> 
        <pi:Phone_Number>5559999</pi:Phone_Number> 
        <pi:First_Email_Address>[email protected]</pi:First_Email_Address> 
       </pi:Personal> 
       <pi:Status> 
        <pi:Employee_Status>A</pi:Employee_Status> 
        <pi:Hire_Date>2011-02-28</pi:Hire_Date> 
        <pi:Original_Hire_Date>2011-02-28</pi:Original_Hire_Date> 
        <pi:Continuous_Service_Date>2011-02-28</pi:Continuous_Service_Date> 
        <pi:Seniority_Date>2011-02-28</pi:Seniority_Date> 
       </pi:Status> 
       <pi:Position> 
        <pi:Operation>NONE</pi:Operation> 
        <pi:Worker_Type>FTR</pi:Worker_Type> 
        <pi:Job_Exempt>1</pi:Job_Exempt> 
        <pi:Scheduled_Weekly_Hours>40</pi:Scheduled_Weekly_Hours> 
        <pi:Default_Weekly_Hours>40</pi:Default_Weekly_Hours> 
        <pi:Pay_Cycle_Hours>86.67</pi:Pay_Cycle_Hours> 
        <pi:Pay_Rate_Type>H</pi:Pay_Rate_Type> 
        <pi:Compensation_Effective_Date>2013-01-01</pi:Compensation_Effective_Date> 
        <pi:Total_Base_Pay>27.2645</pi:Total_Base_Pay> 
        <pi:Base_Pay_Currency>USD</pi:Base_Pay_Currency> 
        <pi:Base_Pay_Frequency>H</pi:Base_Pay_Frequency> 
        <pi:Organization_One>1500</pi:Organization_One> 
        <pi:Workers_Compensation_Code>8810</pi:Workers_Compensation_Code> 
        <pi:Business_Site>San Diego Office</pi:Business_Site> 
        <pi:Business_Site_Name>San Diego Office</pi:Business_Site_Name> 
        <pi:Business_Site_Region>CA</pi:Business_Site_Region> 
        <pi:Supervisor_Name>Jed Sanders (1402)</pi:Supervisor_Name> 
       </pi:Position> 
       <pi:Identifier> 
        <pi:Operation>REMOVE</pi:Operation> 
        <pi:Identifier_Type>SSN</pi:Identifier_Type> 
        <pi:Identifier_Value>123456788</pi:Identifier_Value> 
       </pi:Identifier> 
       <pi:Identifier> 
        <pi:Operation>ADD</pi:Operation> 
        <pi:Identifier_Type>SSN</pi:Identifier_Type> 
        <pi:Identifier_Value>111111111</pi:Identifier_Value> 
       </pi:Identifier> 
       <pi:Identifier> 
        <pi:Operation>NONE</pi:Operation> 
        <pi:Identifier_Type>ADP_No</pi:Identifier_Type> 
        <pi:Identifier_Value>541</pi:Identifier_Value> 
       </pi:Identifier> 
       <pi:Additional_Information> 
        <pi:PreferredFirstName>Bobby</pi:PreferredFirstName> 
       </pi:Additional_Information> 
      </pi:Employee> 
      <pi:Employee> 
       <pi:Summary> 
        <pi:Employee_ID>1842</pi:Employee_ID> 
        <pi:Name>James Johnson</pi:Name> 
        <pi:Payroll_Company_ID>25G</pi:Payroll_Company_ID> 
        <pi:Payroll_Company_Name>Acme.net</pi:Payroll_Company_Name> 
        <pi:Pay_Group_ID>G85D6W87D</pi:Pay_Group_ID> 
        <pi:Pay_Group_Name>G85D6W87D Semi-monthly</pi:Pay_Group_Name> 
       </pi:Summary> 
       <pi:Personal> 
        <pi:First_Name>James</pi:First_Name> 
        <pi:Middle_Name>B</pi:Middle_Name> 
        <pi:Last_Name>Johnson</pi:Last_Name> 
        <pi:Gender>M</pi:Gender> 
        <pi:Birth_Date>1982-09-17</pi:Birth_Date> 
        <pi:Marital_Status>S</pi:Marital_Status> 
        <pi:First_Address_Line_Data pi:Label="Address Line 1" pi:Type="ADDRESS_LINE_1">1111 
         Hampton Way</pi:First_Address_Line_Data> 
        <pi:First_Municipality>San Diego</pi:First_Municipality> 
        <pi:First_Region>CA</pi:First_Region> 
        <pi:First_Postal_Code>92109</pi:First_Postal_Code> 
        <pi:Area_Code>619</pi:Area_Code> 
        <pi:Phone_Number>5551234</pi:Phone_Number> 
        <pi:First_Email_Address>[email protected]</pi:First_Email_Address> 
       </pi:Personal> 
       <pi:Status> 
        <pi:Employee_Status>A</pi:Employee_Status> 
        <pi:Hire_Date>2010-03-28</pi:Hire_Date> 
        <pi:Original_Hire_Date>2010-03-28</pi:Original_Hire_Date> 
        <pi:Continuous_Service_Date>2010-03-28</pi:Continuous_Service_Date> 
        <pi:Seniority_Date>2010-03-28</pi:Seniority_Date> 
       </pi:Status> 
       <pi:Position> 
        <pi:Operation>REMOVE</pi:Operation> 
        <pi:Worker_Type>FTR</pi:Worker_Type> 
        <pi:Job_Exempt>1</pi:Job_Exempt> 
        <pi:Scheduled_Weekly_Hours>40</pi:Scheduled_Weekly_Hours> 
        <pi:Default_Weekly_Hours>40</pi:Default_Weekly_Hours> 
        <pi:Pay_Cycle_Hours>86.67</pi:Pay_Cycle_Hours> 
        <pi:Pay_Rate_Type>H</pi:Pay_Rate_Type> 
        <pi:Compensation_Effective_Date>2010-03-28</pi:Compensation_Effective_Date> 
        <pi:Total_Base_Pay>27.2645</pi:Total_Base_Pay> 
        <pi:Base_Pay_Currency>USD</pi:Base_Pay_Currency> 
        <pi:Base_Pay_Frequency>H</pi:Base_Pay_Frequency> 
        <pi:Organization_One>1500</pi:Organization_One> 
        <pi:Workers_Compensation_Code>8810</pi:Workers_Compensation_Code> 
        <pi:Business_Site>San Diego Office</pi:Business_Site> 
        <pi:Business_Site_Name>San Diego Office</pi:Business_Site_Name> 
        <pi:Business_Site_Region>CA</pi:Business_Site_Region> 
        <pi:Supervisor_Name>Jed Sanders (1402)</pi:Supervisor_Name> 
       </pi:Position> 
       <pi:Position> 
        <pi:Operation>ADD</pi:Operation> 
        <pi:Worker_Type>FTR</pi:Worker_Type> 
        <pi:Job_Exempt>1</pi:Job_Exempt> 
        <pi:Scheduled_Weekly_Hours>40</pi:Scheduled_Weekly_Hours> 
        <pi:Default_Weekly_Hours>40</pi:Default_Weekly_Hours> 
        <pi:Pay_Cycle_Hours>86.67</pi:Pay_Cycle_Hours> 
        <pi:Pay_Rate_Type>S</pi:Pay_Rate_Type> 
        <pi:Compensation_Effective_Date>2013-01-01</pi:Compensation_Effective_Date> 
        <pi:Total_Base_Pay>95123</pi:Total_Base_Pay> 
        <pi:Base_Pay_Currency>USD</pi:Base_Pay_Currency> 
        <pi:Base_Pay_Frequency>S</pi:Base_Pay_Frequency> 
        <pi:Organization_One>1500</pi:Organization_One> 
        <pi:Workers_Compensation_Code>8810</pi:Workers_Compensation_Code> 
        <pi:Business_Site>San Diego Office</pi:Business_Site> 
        <pi:Business_Site_Name>San Diego Office</pi:Business_Site_Name> 
        <pi:Business_Site_Region>CA</pi:Business_Site_Region> 
        <pi:Supervisor_Name>Jed Sanders (1402)</pi:Supervisor_Name> 
       </pi:Position> 
       <pi:Identifier> 
        <pi:Operation>NONE</pi:Operation> 
        <pi:Identifier_Type>SSN</pi:Identifier_Type> 
        <pi:Identifier_Value>222222222</pi:Identifier_Value> 
       </pi:Identifier> 
       <pi:Identifier> 
        <pi:Operation>NONE</pi:Operation> 
        <pi:Identifier_Type>ADP_No</pi:Identifier_Type> 
        <pi:Identifier_Value>543</pi:Identifier_Value> 
       </pi:Identifier> 
       <pi:Additional_Information> 
        <pi:PreferredFirstName>Jimmy</pi:PreferredFirstName> 
       </pi:Additional_Information> 
      </pi:Employee> 
     </pi:PayGroup> 
     <pi:PayGroup> 
      <pi:Header> 
       <pi:Version>18</pi:Version> 
       <pi:Payroll_Company_ID>NMA</pi:Payroll_Company_ID> 
       <pi:Payroll_Company_Name>Acme.net</pi:Payroll_Company_Name> 
       <pi:Pay_Group_ID>DS87D7RR9</pi:Pay_Group_ID> 
       <pi:Pay_Group_Name>DS87D7RR9 Weekly</pi:Pay_Group_Name> 
       <pi:Pay_Period_Start>2013-02-16-08:00</pi:Pay_Period_Start> 
       <pi:Pay_Period_End>2013-02-28-08:00</pi:Pay_Period_End> 
       <pi:Updated_From>2013-02-28T18:00:15.171-08:00</pi:Updated_From> 
       <pi:Updated_To>2013-03-07T12:25:36.860-08:00</pi:Updated_To> 
       <pi:All_Effective>false</pi:All_Effective> 
      </pi:Header> 
      <pi:Employee> 
       <pi:Summary> 
        <pi:Employee_ID>1432</pi:Employee_ID> 
        <pi:Name>Steve Whatever</pi:Name> 
        <pi:Payroll_Company_ID>NMA</pi:Payroll_Company_ID> 
        <pi:Payroll_Company_Name>Acme.net</pi:Payroll_Company_Name> 
        <pi:Pay_Group_ID>DS87D7RR9</pi:Pay_Group_ID> 
        <pi:Pay_Group_Name>DS87D7RR9 Weekly</pi:Pay_Group_Name> 
       </pi:Summary> 
       <pi:Personal> 
        <pi:First_Name>Steve</pi:First_Name> 
        <pi:Middle_Name>B</pi:Middle_Name> 
        <pi:Last_Name>Whatever</pi:Last_Name> 
        <pi:Gender>M</pi:Gender> 
        <pi:Birth_Date>1985-07-19</pi:Birth_Date> 
        <pi:Marital_Status>S</pi:Marital_Status> 
        <pi:First_Address_Line_Data pi:Label="Address Line 1" pi:Type="ADDRESS_LINE_1">1234 
         Dreyfus Lane</pi:First_Address_Line_Data> 
        <pi:First_Municipality>San Diego</pi:First_Municipality> 
        <pi:First_Region>CA</pi:First_Region> 
        <pi:First_Postal_Code>92109</pi:First_Postal_Code> 
        <pi:Area_Code>619</pi:Area_Code> 
        <pi:Phone_Number>5558888</pi:Phone_Number> 
        <pi:First_Email_Address>[email protected]</pi:First_Email_Address> 
       </pi:Personal> 
       <pi:Status> 
        <pi:Employee_Status>A</pi:Employee_Status> 
        <pi:Hire_Date>2009-02-28</pi:Hire_Date> 
        <pi:Original_Hire_Date>2009-02-28</pi:Original_Hire_Date> 
        <pi:Continuous_Service_Date>2009-02-28</pi:Continuous_Service_Date> 
        <pi:Seniority_Date>2009-02-28</pi:Seniority_Date> 
       </pi:Status> 
       <pi:Position> 
        <pi:Operation>NONE</pi:Operation> 
        <pi:Worker_Type>FTR</pi:Worker_Type> 
        <pi:Job_Exempt>1</pi:Job_Exempt> 
        <pi:Scheduled_Weekly_Hours>40</pi:Scheduled_Weekly_Hours> 
        <pi:Default_Weekly_Hours>40</pi:Default_Weekly_Hours> 
        <pi:Pay_Cycle_Hours>86.67</pi:Pay_Cycle_Hours> 
        <pi:Pay_Rate_Type>H</pi:Pay_Rate_Type> 
        <pi:Compensation_Effective_Date>2013-01-01</pi:Compensation_Effective_Date> 
        <pi:Total_Base_Pay>27.2645</pi:Total_Base_Pay> 
        <pi:Base_Pay_Currency>USD</pi:Base_Pay_Currency> 
        <pi:Base_Pay_Frequency>H</pi:Base_Pay_Frequency> 
        <pi:Organization_One>1500</pi:Organization_One> 
        <pi:Workers_Compensation_Code>8810</pi:Workers_Compensation_Code> 
        <pi:Business_Site>San Diego Office</pi:Business_Site> 
        <pi:Business_Site_Name>San Diego Office</pi:Business_Site_Name> 
        <pi:Business_Site_Region>CA</pi:Business_Site_Region> 
        <pi:Supervisor_Name>Adam Sandler (5472)</pi:Supervisor_Name> 
       </pi:Position> 
       <pi:Identifier> 
        <pi:Operation>NONE</pi:Operation> 
        <pi:Identifier_Type>SSN</pi:Identifier_Type> 
        <pi:Identifier_Value>333333333</pi:Identifier_Value> 
       </pi:Identifier> 
       <pi:Identifier> 
        <pi:Operation>NONE</pi:Operation> 
        <pi:Identifier_Type>ADP_No</pi:Identifier_Type> 
        <pi:Identifier_Value>542</pi:Identifier_Value> 
       </pi:Identifier> 
      </pi:Employee> 
      <pi:Employee> 
       <pi:Summary> 
        <pi:Employee_ID>3333</pi:Employee_ID> 
        <pi:Name>James Anything</pi:Name> 
        <pi:Payroll_Company_ID>NMA</pi:Payroll_Company_ID> 
        <pi:Payroll_Company_Name>Acme.net</pi:Payroll_Company_Name> 
        <pi:Pay_Group_ID>DS87D7RR9</pi:Pay_Group_ID> 
        <pi:Pay_Group_Name>DS87D7RR9 Weekly</pi:Pay_Group_Name> 
       </pi:Summary> 
       <pi:Personal> 
        <pi:First_Name>James</pi:First_Name> 
        <pi:Middle_Name>B</pi:Middle_Name> 
        <pi:Last_Name>Anything</pi:Last_Name> 
        <pi:Gender>M</pi:Gender> 
        <pi:Birth_Date>1975-04-01</pi:Birth_Date> 
        <pi:Marital_Status>S</pi:Marital_Status> 
        <pi:First_Address_Line_Data pi:Label="Address Line 1" pi:Type="ADDRESS_LINE_1">9865 
         Wells Lane</pi:First_Address_Line_Data> 
        <pi:First_Municipality>San Diego</pi:First_Municipality> 
        <pi:First_Region>CA</pi:First_Region> 
        <pi:First_Postal_Code>92109</pi:First_Postal_Code> 
        <pi:Area_Code>619</pi:Area_Code> 
        <pi:Phone_Number>5557272</pi:Phone_Number> 
        <pi:First_Email_Address>[email protected]</pi:First_Email_Address> 
       </pi:Personal> 
       <pi:Status> 
        <pi:Employee_Status>A</pi:Employee_Status> 
        <pi:Hire_Date>2012-09-28</pi:Hire_Date> 
        <pi:Original_Hire_Date>2012-09-28</pi:Original_Hire_Date> 
        <pi:Continuous_Service_Date>2012-09-28</pi:Continuous_Service_Date> 
        <pi:Seniority_Date>2012-09-28</pi:Seniority_Date> 
       </pi:Status> 
       <pi:Position> 
        <pi:Operation>NONE</pi:Operation> 
        <pi:Worker_Type>FTR</pi:Worker_Type> 
        <pi:Job_Exempt>1</pi:Job_Exempt> 
        <pi:Scheduled_Weekly_Hours>40</pi:Scheduled_Weekly_Hours> 
        <pi:Default_Weekly_Hours>40</pi:Default_Weekly_Hours> 
        <pi:Pay_Cycle_Hours>86.67</pi:Pay_Cycle_Hours> 
        <pi:Pay_Rate_Type>H</pi:Pay_Rate_Type> 
        <pi:Compensation_Effective_Date>2013-01-01</pi:Compensation_Effective_Date> 
        <pi:Total_Base_Pay>27.2645</pi:Total_Base_Pay> 
        <pi:Base_Pay_Currency>USD</pi:Base_Pay_Currency> 
        <pi:Base_Pay_Frequency>H</pi:Base_Pay_Frequency> 
        <pi:Organization_One>1500</pi:Organization_One> 
        <pi:Workers_Compensation_Code>8810</pi:Workers_Compensation_Code> 
        <pi:Business_Site>San Diego Office</pi:Business_Site> 
        <pi:Business_Site_Name>San Diego Office</pi:Business_Site_Name> 
        <pi:Business_Site_Region>CA</pi:Business_Site_Region> 
        <pi:Supervisor_Name>Adam Sandler (5472)</pi:Supervisor_Name> 
       </pi:Position> 
       <pi:Identifier> 
        <pi:Operation>NONE</pi:Operation> 
        <pi:Identifier_Type>SSN</pi:Identifier_Type> 
        <pi:Identifier_Value>444444444</pi:Identifier_Value> 
       </pi:Identifier> 
       <pi:Identifier> 
        <pi:Operation>REMOVE</pi:Operation> 
        <pi:Identifier_Type>ADP_No</pi:Identifier_Type> 
        <pi:Identifier_Value>544</pi:Identifier_Value> 
       </pi:Identifier> 
       <pi:Identifier> 
        <pi:Operation>ADD</pi:Operation> 
        <pi:Identifier_Type>ADP_No</pi:Identifier_Type> 
        <pi:Identifier_Value>545</pi:Identifier_Value> 
       </pi:Identifier> 
      </pi:Employee> 
     </pi:PayGroup> 
    </pi:Payroll_Extract_Employees> 

XSLT代碼:

<!-- <?xml version="1.0" encoding="UTF-8"?> --> 
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:pi="urn:com.workday/picof"> 

    <xsl:variable name="sep">,</xsl:variable> 

    <xsl:template match="pi:Payroll_Extract_Employees"> 
     <xsl:text>&#xa;</xsl:text> 
     <xsl:for-each select="pi:PayGroup"> 
      <xsl:text>Pay Group: </xsl:text> 
      <xsl:value-of select="pi:Header/pi:Pay_Group_Name"/> 
      <xsl:text>&#xa;</xsl:text> 

      <xsl:text>EmployeeID,Last_Name,First_Name,SSN,Hire_Date&#xa;</xsl:text> 
      <xsl:for-each select="pi:Employee"> 

       <xsl:value-of select="pi:Summary/pi:Employee_ID"/> 
       <xsl:value-of select="$sep"/> 

       <xsl:value-of select="pi:Personal/pi:Last_Name"/> 
       <xsl:value-of select="$sep"/> 

       <xsl:value-of select="pi:Personal/pi:First_Name"/> 
       <xsl:value-of select="$sep"/> 

       <xsl:value-of select="pi:Identifier[pi:Identifier_Type = 'SSN']/pi:Identifier_Value"/> 
       <xsl:value-of select="$sep"/> 

       <xsl:value-of select="pi:Status/pi:Hire_Date"/> 

       <xsl:text>&#xa;</xsl:text> 
      </xsl:for-each> <!-- end employee loop --> 

      <xsl:text>&#xa;</xsl:text> 

     </xsl:for-each> <!-- end paygroup loop --> 

    </xsl:template> <!-- end of main template --> 
</xsl:stylesheet> 
+0

它看起來像你接收更新的順序,必須根據跟蹤操作不管SSN是否存在以及保留哪一個。規範對操作順序說了什麼?對於給定的'Identifier_Type',操作是按照最近的一個或最後一個排序的?請注意,如果「最近的」(無論它是哪一個)是「REMOVE」,那麼該記錄沒有SSN。問題沒有明確說明,目前的形式無法回答這個問題。 –

+0

@JimGarrison ...如果有多個值,它必須是最近的SSN。我是XSLT的新手,所以我對這個模糊的解釋表示歉意。非常感謝您的直接回復,感謝:) – feeks

+0

問題是沒有足夠的信息來確定更新的順序,這是非常重要的。你需要詢問XML的供應商是哪一個。 –

回答

0

它是最新的SSN如果有多個值

我同意前面的意見和答案,這是一個有點粗略的要求。在來源中沒有任何暗示「最新」的東西。有幾種可能的結論,你將不得不檢查與誰擁有你的輸入XML的規範:

  • 最新也是最後,使用:

    <xsl:value-of select="pi:Identifier[pi:Identifier_Type = 'SSN'] 
        [last()]/pi:Identifier_Value"/> 
    
  • 最新永遠是第一位,用途:

    <xsl:value-of select="pi:Identifier[pi:Identifier_Type = 'SSN'] 
        [1]/pi:Identifier_Value"/> 
    
  • 最近的是最後一個,但可能不一個certa在「運行」(由邁克爾的建議):

    <xsl:value-of select="pi:Identifier[pi:Identifier_Type = 'SSN' 
        and not(pi:Operation='REMOVE')][last()]/pi:Identifier_Value"/> 
    
  • 別的(填空)

+0

阿貝爾和邁克爾......非常感謝你的幫助。我非常感謝你的及時答覆。謝謝 :) – feeks

1

你沒有提供任何指引關於選擇哪個SSN號碼,以及只有一個例子,我在這裏主要猜測。嘗試更換:

<xsl:value-of select="pi:Identifier[pi:Identifier_Type = 'SSN']/pi:Identifier_Value"/> 

有:

<xsl:value-of select="pi:Identifier[pi:Identifier_Type = 'SSN' and not(pi:Operation='REMOVE')]/pi:Identifier_Value"/> 

這是基於這樣的假設,每當已經被刪除的SSN,會有另外一個(也是唯一一個)增加了 - 這就是一個你想要在你的輸出中有。當然,爲了驗證這種假設,您必須查閱源XML的模式。

+0

@JimGarrison你的猜測*和我一樣好。 –