2012-12-25 4 views
5

मैं VB.NET का उपयोग करने के <itemnote><series> की name विशेषता है और इसका name विशेषता के आधार पर से innerText निकालने के लिए कोशिश कर रहा हूँ में पार्स चाइल्ड तत्व <item> है। मैं नाम गुण निकाल सकते हैं, लेकिन मैं सिर्फ <itemnote>एक्सएमएल VBNet

यहाँ की innerText उपयोग नहीं कर सकते कुछ नमूना एक्सएमएल है:

<?xml version="1.0" encoding="UTF-8"?> 
<Products> 
    <series name="HiTech" year="2000" country="United Kingdom"> 
    <item name="Robotic" collected="no"> 
    <itemnote>Exclusive UK Release</itemnote> 
    </item> 
    <item name="Future" collected="yes"> 
    <itemnote>LED Edition</itemnote> 
    </item> 
    </series> 
    <series name="Neo" year="2003" country="United Kingdom"> 
    <item name="X Rated" collected="no"> 
    <itemnote>Red striped version</itemnote> 
    </item> 
    <item name="Cool Breeze" collected="no"> 
    <itemnote>Includes promo booklet</itemnote> 
    </item> 
    </series> 
</Products> 

अब तक मैं XDocument साथ एक पुनरावर्ती पाश उपयोग करने की कोशिश की है, लेकिन मैंने सभी <series> और <item> विशेषताओं की सूची से कुछ भी प्राप्त करने में असमर्थ रहे। मैंने XPath और Linq का उपयोग करने का भी प्रयास किया है, लेकिन मैं यह नहीं समझ सकता कि उनमें से किसी एक को मेरी इच्छा के अनुसार कैसे करना है। कोई भी मदद बहुत अच्छी रहेगी! चीयर्स।

उत्तर

1

आप <item> नोड्स के संदर्भ पाने के लिए और item तत्व पर आधारित है, तो आप parent और child तत्व के नाम विशेषताओं के मूल्यों की तुलना कर सकते हैं।

Dim nameOfSeries = "HiTech" 
Dim nameOfItem = "Future" 

Dim result = doc.Descendants("item").Where(Function(p) 
           Return p.Parent.Attribute("name").Value = nameOfSeries And 
               p.Attribute("name").Value = nameOfItem 
           End Function) 

IF result.Count Then 
    For Each ele In result 
    Console.WriteLine(ele.Element("itemnote").Value) 
    Next 
End If 
+1

धन्यवाद! अंत में यह काम कर रहा है। मैं ' 'नोड पाने और अपने बच्चों के माध्यम से खोजने की कोशिश कर रहा था .. कोई आश्चर्य नहीं कि मेरे लिए कुछ भी काम नहीं कर रहा था। –

+0

@ स्टेवेजोन आपका स्वागत है। – adatapost