c# - How to get multiple elements by name in XML using LINQ -
मेरे पास निम्न XML है:
& lt;? xml संस्करण = "1.0" स्टैंडअलोन = "हाँ" & gt; & LT; TestSuite & gt; & Lt; टेस्ट सीज़ नाम = "XXX" आईडी = "123; 234; 345; 456" & gt; & Lt; CodeBlock / & gt; & Lt; / testcase & gt; & Lt; टेस्टसीज नाम = "ईस्ट" आईडी = "11,22,33, 44, 55" & gt; & Lt; CodeBlock / & gt; & Lt; / testcase & gt; & Lt; / TestSuite & gt; मुझे सभी आईडी प्राप्त करने और आईडी एएससी द्वारा उन्हें क्रमबद्ध करने की आवश्यकता है, नीचे मेरी लिनक है:
var r = (एक्सएमडीएक्स में एलवी 1 से। डिस्केन्डेंट्स ("टेस्टसीज़") का चयन करें नया {आईडी = lv1.Attribute ("ID")। मान})। जहां (डी = & gt; डी.आई.डी.! = स्ट्रिंग.एप्टी) .GroupBy (l = & gt; l.ID)। सूची बनाने के लिए(); अब मुझे मिल रहा है:
123; 234; 345; 456 11, 22, 33, 44, 55 लेकिन मैं आईडी कैसे प्राप्त कर सकता हूं:
11 22 33 44 55 123 234 345 456 < / कोड>
यह स्पष्ट नहीं है कि आप सभी को क्यों समूहबद्ध कर रहे हैं ... और आपको बस मूल्यों को विभाजित करें और इसके साथ दिखते हुए समतल करें:
var separators = new [] {';', ','}; Var r = xdoc.Descendants ("TestCase")। चयन करें (x = & gt; (स्ट्रिंग) x.Attribute ("ID"))। जहां (आईडी = & gt; आईडी! = नल)। चयन कई (आईडी = & gt; आईडी .Split (सेपरेटर, स्ट्रिंग एसप्लीट ऑप्शन। RemoveEmptyEntries))। चयन करें (आईडी = & gt; int.Parse (id.Trim ())। ओर्डरबी (आईडी = & gt; आईडी) .ओलिस्ट (); ध्यान दें कि मैंने प्रत्येक आईडी पूर्णांक के रूप में पार्स कर दिया है, इस आधार पर कि अगर आप उन्हें तार के रूप में मानते हैं, तो "123" "55" से पहले आता है। यदि वे वास्तव में अनिवार्य रूप से पूर्णांक नहीं हैं, लेकिन आप ऐसे किसी भी मान को सॉर्ट करना चाहते हैं जिसे पूर्णांक के रूप में पार्स किया जा सकता है, तो ऑर्डरिंग पार्ट गुम हो जाता है।
Comments
Post a Comment