html - Creating semantic tables with rowspan via xslt -
मेरे पास XML दस्तावेज़ है:
...
& LT; एक्स & gt; & LT; लक्षण & gt; & lt; descr & gt; & lt; / descr & gt; & lt; / लक्षण & gt; & LT; कारण & gt; & lt; / कारण & gt; & LT; समाधान & gt; & lt; / समाधान & gt; & LT; कारण & gt; & lt; / कारण & gt; & LT; समाधान & gt; & lt; / समाधान & gt; & Lt; / एक्स & gt; ...
मेरे दस्तावेज़ में मेरे पास कई & lt; x & gt;
प्रत्येक & Lt; x & gt; मेरे पास केवल एक & lt; लक्षण & gt; और n <कारण> और और & lt; समाधान & gt; ; जिससे & lt; कारण & gt; और & lt; समाधान & gt; की राशि हमेशा एक ही है।
मैं autmatically निम्न प्राप्त करना चाहते हैं उत्पन्न संरचना:
& lt; तालिका & gt; & LT; टीआर & gt; & Lt; td rowspan = count (कारण) & gt; & lt; xsl: मान का चयन करें = "लक्षण / descr" & gt; & lt; / td & gt; & Lt; td & gt; & lt; xsl: मान का चयन = "कारण" & gt; & lt; / td & gt; & Lt; td & gt; & lt; xsl: मान का चयन करें = "लक्षण" & gt; & lt; / td & gt; & LT; टीआर & gt; & LT; टीआर & gt; & Lt; td & gt; & lt; xsl: मान का चयन = "कारण" & gt; & lt; / td & gt; & Lt; td & gt; & lt; xsl: मान का चयन करें = "लक्षण" & gt; & lt; / td & gt; & LT; टीआर & gt; ... & lt; / तालिका & gt; मैंने निम्नलिखित कोड की कोशिश की, जो मुझे पता है पूरी तरह गलत है। लेकिन मैं कई घंटे से फंस गया हूं और इंटरनेट पर कोई अच्छा समाधान नहीं मिल सका।
& lt; xsl: प्रत्येक चयन = "कारण" & gt; & LT; टीआर & gt; & Lt; td rowspan = "गिनती (।)" & Gt; & Lt; xsl: मान का चयन करें = "../ descr [1]" / & gt; & Lt; / टीडी & gt; & LT; टीडी & gt; & Lt; xsl: मान का चयन = "।" / & Gt; & Lt; / टीडी & gt; & Lt; xsl: प्रत्येक-चयन = "..// समाधान" & gt; & LT; टीडी & gt; & Lt; xsl: मान का चयन = "।" / & Gt; & Lt; / टीडी & gt; & Lt; / XSL: के लिए-प्रत्येक & gt; & Lt; / टीआर & gt; & Lt; / XSL: के लिए-प्रत्येक & gt; & Lt; / तालिका & gt;
आप एक के साथ सही लाइन पर हैं tr प्रति कारण , इसके बारे में कैसे:
& lt; xsl: टेम्पलेट मैच = "x" & gt; & LT; तालिका & gt; & Lt; xsl: प्रत्येक चयन = "कारण" & gt; & Lt;! - वर्तमान कारणों की सूची में इस कारण का सूचकांक एक्स - & gt; & Lt; xsl: variable name = "pos" चुनें = "स्थिति ()" / & gt; & LT; टीआर & gt; & Lt;! - पहला कारण - स्पैनिंग लक्षण सेल बनाएं - & gt; & Lt; xsl: if test = "$ pos = 1" & gt; & Lt; td rowspan = "{last ()}" & gt; & lt; xsl: मान का चयन करें = "..// लक्षण / descr" / & gt; & lt; / td & gt; & Lt; / XSL: यदि & gt; & Lt;! - इस कारण - & gt; & Lt; td & gt; & lt; xsl: मान का चयन = "।" / & Gt; & lt; / टीडी & gt; & Lt;! - मिलान समाधान - & gt; & Lt; td & gt; & lt; xsl: मान का चयन करें = "../.. [$ pos]" / /> gt; & lt; / td & gt; & Lt; / टीआर & gt; & Lt; / XSL: के लिए-प्रत्येक & gt; & Lt; / तालिका & gt; & Lt; / XSL: टेम्पलेट & gt; यहाँ एक चाल है अंतिम () फ़ंक्शन है, जो नोड्स की कुल संख्या देता है जो वर्तमान प्रत्येक के लिए (या लागू-टेम्पलेट ) प्रसंस्करण है, जो इस मामले में ठीक उसी पंक्तियों की संख्या है जिसे आप चाहते हैं।
Comments
Post a Comment