मेरे पास एक क्लाइंट है जो एक XML फ़ीड भेजता है जिसे मैं निम्नलिखित कोड का उपयोग करके पार्स करता हूं। यह कोड काम करता है।एक LINQ के साथ एक विशिष्ट को अनदेखा कैसे करें जहां खंड?
reviews = from item in xmlDoc.Descendants("node")
select new ForewordReview()
{
PubDate = (string)item.Element("created"),
Isbn = (string)item.Element("isbn"),
Summary = (string)item.Element("review")
};
मेरी सभी "समीक्षा" प्राप्त करने के बाद मैंने एक सूची के रूप में IENumerable डाला और इसे वापस कर दिया। मूल रूप से, मैं उनके एक्सएमएल जो इस तरह देखने के लिए प्रयोग किया जाता है पार्स करने के लिए एक अच्छा और आसान समय हो रही थी:
<reviews>
<node>
<created>01-01-1900</created>
<ISBN>12345657890123</ISBN>
<Review>This is a nice and silly book</Review>
</node>
<node>
<created>01-01-2011</created>
<ISBN>1236245234554</ISBN>
<Review>This is a stupid book</Review>
</node>
<node>
<created>12-06-1942</created>
<ISBN>1234543234577</ISBN>
<Review>This is a old, naughty book</Review>
</node>
</reviews>
वे है, हालांकि, उनके स्कीमा बदल गया है, जो मैं पहुँच नहीं है, और अब अपने एक्सएमएल है अंत में एक अंतिम <node>
टैग में जोड़ना जिसमें मेरे द्वारा देखे जाने वाले घटित तत्व शामिल नहीं हैं, और इसलिए, मेरे पिछले टैग पर मेरा पार्सिंग टूट जाता है और मैंने अपवाद फेंक दिया। यहाँ एक उदाहरण है:
<reviews>
<node>
<created>01-01-1900</created>
<ISBN>12345657890123</ISBN>
<Review>This is a nice and silly book</Review>
</node>
<node>
<created>01-01-2011</created>
<ISBN>1236245234554</ISBN>
<Review>This is a stupid book</Review>
</node>
<node>
<created>12-06-1942</created>
<ISBN>1234543234577</ISBN>
<Review>This is a old, naughty book</Review>
</node>
<node>
<count>4656</count>
</node>
</reviews>
मैं अगर वहाँ इस अंतिम टैग की अनदेखी करने के लिए एक रास्ता है पता करने की जरूरत है (इसकी हमेशा दस्तावेज़ के अंत में) भले ही यह अन्य सभी "नोड" के रूप में एक ही नाम है टैग मैं देख रहा हूँ। मेरे पास कोड के इस ब्लॉक के चारों ओर पकड़ने का प्रयास है, लेकिन अगर यह इस त्रुटि को देखता है तो यह अच्छी समीक्षाओं की सूची वापस नहीं करता है।
धन्यवाद दोस्तों।
शायद 'जहां आइटम। एलिमेंट ("गिनती") == null' _ (या अन्य मार्ग "बनाया गया"! = Null) _ – ordag
@ordag मैं वास्तव में आपके समाधान में कुछ नल जांच के साथ भी शामिल करता हूं डेलट्री सुझाव से। धन्यवाद। –