ฉันมีเอกสาร XML ที่มีโครงสร้างดังนี้
<items>
<item>
<name>item1</name>
<attributes>a,b,c,d</attributes>
</item>
<item>
<name>item2</name>
<attributes>c,d,e</attributes>
</item>
</items>
สำหรับค่าแอตทริบิวต์ที่ไม่ซ้ำกันแต่ละค่า (คั่นด้วยเครื่องหมายจุลภาค) ฉันจำเป็นต้องแสดงรายการชื่อรายการทั้งหมดที่เกี่ยวข้องกับค่านั้นดังนี้:
a : item1
b : item1
c : item1, item2
d : item1, item2
e : item2
แผนเริ่มต้นของฉันคือการใช้เทมเพลตเพื่อแยกแอตทริบิวต์ออกเป็นโหนดแอตทริบิวต์ โดยล้อมรอบแต่ละรายการด้วยแท็กที่เหมาะสม จากนั้นแยกค่าที่ไม่ซ้ำออกด้วยนิพจน์ XPATH เช่น
Attribute[not(.=following::Attribute)]
แต่เนื่องจากผลลัพธ์ของเทมเพลตไม่ใช่ชุดโหนดที่เคยผ่านตัวแยกวิเคราะห์ XML ฉันจึงไม่สามารถสำรวจได้ ฉันยังลองใช้ฟังก์ชัน node-set() ของ exslt เพียงเพื่อจะรู้ว่ามันไม่อนุญาตให้ฉันสำรวจแต่ละโหนด Attribute เช่นกัน
ณ จุดนี้ ฉันไม่รู้ว่ามีวิธีง่ายๆ ในการทำเช่นนี้ และขอขอบคุณสำหรับความช่วยเหลือหรือแนวคิดในการดำเนินการต่อไป ขอบคุณ!