निम्न XML पर विचार करें:कैसे XElement या LINQ के साथ XPath उपयोग कैसे करें?
<response>
<status_code>200</status_code>
<status_txt>OK</status_txt>
<data>
<url>http://bit.ly/b47LVi</url>
<hash>b47LVi</hash>
<global_hash>9EJa3m</global_hash>
<long_url>http://www.tumblr.com/docs/en/api#api_write</long_url>
<new_hash>0</new_hash>
</data>
</response>
मैं एक बहुत छोटे से रास्ता सिर्फ <hash>
तत्व का मान प्राप्त करने के लिए की तलाश में हूँ। मैंने कोशिश की:
var hash = xml.Element("hash").Value;
लेकिन यह काम नहीं कर रहा है। क्या XElement
पर XPath क्वेरी प्रदान करना संभव है? मैं बड़ा System.Xml
ढांचे के साथ यह कर सकते हैं, की तरह कुछ कर रही है:
xml.Node("/response/data/hash").Value
वहाँ एक LINQ नाम स्थान में कुछ इस तरह है?
अद्यतन:
इस के साथ आसपास monkeying कुछ और मैं एक रास्ता मिल गया मैं क्या करने की कोशिश कर रहा हूँ करने के लिए करने के बाद:
var hash = xml.Descendants("hash").FirstOrDefault().Value;
मैं अभी भी यह देखने के लिए दिलचस्पी होगी किसी के पास बेहतर समाधान है?
FirstOfDefault का प्रयोग न करें() में इस मामले में, क्योंकि अगर "हैश" नहीं मिला है तो आपको NullReferenceException मिलेगा। इसके बजाय पहले() का उपयोग करें, आपको एक और वर्णनात्मक अपवाद मिलेगा। – kaalus
यदि आप "हैश" हमेशा मौजूद होने की अपेक्षा करते हैं तो पहले() का उपयोग करें। अन्यथा, FirstOrDefault() ठीक है जब तक आप वैल्यू प्रॉपर्टी तक पहुंचने से पहले शून्य की जांच करते हैं। –