ภายใน foreach loop ฉันต้องการใช้ preceding-sibling::
<for-each..>
<xsl:sort select="type"/>
<xsl:when test="preceding-sibling::data[1]/type != type
ปัญหาคือว่า "ประเภท" ภายใน foreach ถูกเปรียบเทียบกับพี่น้องก่อนหน้าที่ไม่เรียงลำดับเช่น
data1/type = 1
data2/type = 2
data3/type = 1
จะเปรียบเทียบในวงที่สอง silbling=2 (ดั้งเดิมไม่เรียงลำดับ) และ type=1 (เนื่องจากถูกเรียงลำดับ)
มีวิธีแก้ไขไหม?
อัปเดต: ความตั้งใจของฉันมีดังต่อไปนี้
before after
data/type2 type1 value1
data/type1 type1 value2
data/type1 and speaking in HTML a spacer here (I compare type2:value to preceding-sibling value
data/type2 type2 value1
type2 value2
ฉันมีรายการที่อยู่ที่ไม่เรียงลำดับโดยที่ประเภทเป็นเมืองและฉันต้องการตาราง HTML จัดเรียงตามเมืองและทำบางสิ่งขึ้นอยู่กับค่าและฟิลด์อื่น ๆ (ส่วนนั้นใช้งานได้ แต่เนื่องจากการเปรียบเทียบกับพี่น้องก่อนหน้าไม่ได้ การทำงานแบบเรียงลำดับสำหรับแต่ละอัน ฉันพบปัญหา