كيفية إزالة العناصر المكررة من ملف XML؟
سؤال
لدي ملف 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>
لا تنتمي إلى StackOverflow