2009-11-30 19 views
5

का उपयोग कर जीएमएल डेटा पार्सिंग मुझे पता है कि यह सबसे ज्यादा पसंद है और हजारों बार पूछा गया है लेकिन किसी कारण से मैं इसे काम नहीं कर सकता। coord नोड:सी # लिंक से एक्सएमएल

<?xml version='1.0' encoding='UTF-8'?> 
<schema 
xmlns='http://www.w3.org/2000/10/XMLSchema' 
xmlns:gml='http://www.opengis.net/gml' 
xmlns:xlink='http://www.w3.org/1999/xlink' 
xmlns:xsi='http://www.w3.org/2000/10/XMLSchema-instance' 
xsi:schemaLocation='http://www.opengis.net/gml/feature.xsd'> 
<gml:Polygon srsName='http://www.opengis.net/gml/srs/epsg.xml#4283'> 
<gml:outerBoundaryIs> 
    <gml:LinearRing> 
    <gml:coord> 
    <gml:X>152.035953</gml:X> 
    <gml:Y>-28.2103190007845</gml:Y> 
    </gml:coord> 
    <gml:coord> 
    <gml:X>152.035957</gml:X> 
    <gml:Y>-28.2102020007845</gml:Y> 
    </gml:coord> 
    <gml:coord> 
    <gml:X>152.034636</gml:X> 
    <gml:Y>-28.2100120007845</gml:Y> 
    </gml:coord> 
    <gml:coord> 
    <gml:X>152.034617</gml:X> 
    <gml:Y>-28.2101390007845</gml:Y> 
    </gml:coord> 
    <gml:coord> 
    <gml:X>152.035953</gml:X> 
    <gml:Y>-28.2103190007845</gml:Y> 
    </gml:coord> 
    </gml:LinearRing> 
</gml:outerBoundaryIs> 
</gml:Polygon> 
</schema> 

सभी मैं ऐसा करने में सक्षम होने की जरूरत है एक्स और वाई प्रत्येक GML से पढ़ा जाता है:

मैं एक GML फ़ाइल है कि ऐसा दिखाई देता है। मैं सी # 3.0 और LINQ का उपयोग कर रहा हूं इसलिए यह आसान होना चाहिए लेकिन मैं जो कुछ भी कोशिश करता हूं वह खाली परिणाम देता है।

मैंने केवल वीबी में एक्सएमएल पार्सिंग किया है, इसलिए इस समय सी # रास्ता मेरे लिए थोड़ा विदेशी है।

धन्यवाद, नाथन

उत्तर

7

मेरा अनुमान है कि आप नाम स्थान में शामिल नहीं किया है। यहां एक छोटा लेकिन पूरा कार्यक्रम है जो सभी कॉर्ड दिखाता है:

using System; 
using System.Linq; 
using System.Xml.Linq; 

class Test 
{ 
    static void Main() 
    { 
     XDocument doc = XDocument.Load("test.xml"); 
     XNamespace gml = "http://www.opengis.net/gml"; 

     var query = doc.Descendants(gml + "coord") 
      .Select(e => new { X = (decimal) e.Element(gml + "X"), 
           Y = (decimal) e.Element(gml + "Y") }); 

     foreach (var c in query) 
     { 
      Console.WriteLine(c); 
     } 
    } 
} 
+0

धन्यवाद जॉन। वह यह था –

संबंधित मुद्दे