سؤال

لدي ملف XML مثل

<ns0:Employees xmlns:ns0="http://TestIndexMap.Employees">
  <Employee FirstName="FirstName_0" LastName="LastName_1" dept="dept_2" empNumber="1">
    <Schedules>
      <Schedule Date_join="2008-01-20" Date_end="2008-01-30" />
    </Schedules>
  </Employee>
  <Employee FirstName="FirstName_0" LastName="LastName_1" dept="dept_2" empNumber="2">
    <Schedules>
      <Schedule Date_join="2008-01-20" Date_end="2008-01-30" />
    </Schedules>
  </Employee>
  <Employee FirstName="FirstName_2" LastName="LastName_1" dept="dept_2" empNumber="2">
    <Schedules>
      <Schedule Date_join="2007-01-21" Date_end="2007-12-30" />

    </Schedules>
  </Employee>
  <Employee FirstName="FirstName_2" LastName="LastName_1" dept="dept_2" empNumber="2">
    <Schedules>
      <Schedule Date_join="2007-01-21" Date_end="2007-12-30" />
      <Schedule Date_join="2008-06-20" Date_end="2008-01-30" />

    </Schedules>
  </Employee>
</ns0:Employees>

أرغب في إزالة التكرارات بناءً على الاسم الأول والاسم الأخير وdate_join وdata_end .

من فضلك، هل يمكن لأي شخص أن يشرح كيفية تحقيق ذلك باستخدام XSLT؟

هل كانت مفيدة؟

المحلول

وهنا بعض العينات من كيفية إزالة التكرارات بناءً على اسم العنصر وحقل المعرف.لا ينبغي أن يكون من الصعب جدًا توسيع هذا ليشمل الحقول العشوائية.

س:توسع.يبدو جزء من XML الخاص بي:

 <location>
   <state>xxxx</state>
 </location>

 <location>
    <state>yyyy</state>
 </location>

  <location>
    <state>xxxx</state>
 </location>

الناتج المطلوب هو :

xxxx
yyyy

وهذا يعني أنه لا ينبغي طباعة قيم الحالة المكررة.هل يمكن هذا؟

   <xsl:variable name="unique-list"
     select="//state[not(.=following::state)]" />   

   <xsl:for-each select="$unique-list">
 <xsl:value-of select="." />
   </xsl:for-each>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top