xslt - How to match an element value to an attribute value in a sub-node of a sibling node -


कई तत्वों के साथ एक XML दस्तावेज़ को देखते हुए:

  & lt; स्तंभ & gt; & LT; सवाल & gt; ... & lt; / प्रश्न & gt; & LT; सवाल & gt; & LT; वर्णन & gt; रंग & lt; / वर्णन & gt; & LT; विकल्प & gt; & Lt; पसंद मान = "" & gt; [रंग चुनें] & lt; / choice & gt; & Lt; पसंद मान = "id01" & gt; लाल & lt; / choice & gt; & Lt; पसंद मान = "id02" & gt; ग्रीन & lt; / choice & gt; & Lt; पसंद मान = "id03" & gt; ब्लू & lt; / choice & gt; & Lt; पसंद मान = "id04" & gt; पीला & lt; / choice & gt; & Lt; / विकल्प & gt; & LT; चुना & gt; id02 & lt; / चुने हुए & gt; & Lt; / प्रश्न & gt; & Lt; / स्तंभ & gt;   

... और (का भाग) XSL रूपांतरण जो इस तरह दिखता है:

  & lt; xsl: प्रत्येक चयन = "कॉलम / प्रश्न "& gt; & Lt; xsl: मान का चयन = "विवरण" / & gt; & Lt; xsl: मान का चयन करें = "चुना" / & gt; & Lt; xsl: मान का चयन करें = "विकल्प / विकल्प [@ मूल्य = 'आईडी02'] '/ & gt; & Lt; / XSL: के लिए-प्रत्येक & gt;   

... बिना किसी हार्ड कोडिंग के "ग्रीन" मान वापस करने का सबसे अच्छा या सबसे आसान तरीका क्या है? मैं इस पर नया हूँ; यह वास्तव में आसान होना चाहिए, लेकिन मुझे पता नहीं कैसे हो सकता है एक्सएसएल में आखिरी "मान का चयन" एक कठिन कोडित विशेषता फ़िल्टर है, लेकिन वास्तव में मैं चाहता हूं कि मेरे दस्तावेज़ में प्रत्येक के लिए इसके मूल्य की तुलना करना है, ऐसा कुछ जहां "विकल्प / विकल्प [@ मान = / प्रश्न / चुने] "... लेकिन तब काम कर रहा है: -)

फिर, मुझे यकीन है यह वास्तव में आसान है, लेकिन Googling के घंटे मुझे कहीं नहीं मिल रहे हैं आपकी मदद और धैर्य के लिए धन्यवाद।

ऐसा कुछ ...

  विकल्प / विकल्प [@value = .. / .. / selected]    

Comments