У меня проблема, когда мой код работает только иногда, и я надеюсь, что кто-то с большим опытом может проверить, что я делаю неправильно. Основываясь на некотором чтении, кажется, что запрос тега непосредственно в качестве потомков был самым простым способом получить мою информацию, но я начинаю понимать, что это, возможно, не лучший способ.разбор GML-файла
Мой код:
XDocument GMLfile = XDocument.Load(thefile.gml);
XNamespace gml = "http://www.opengis.net/gml";
//--------------------------------------------------
var coordquery = from coords in GMLfile.Descendants(gml + "coordinates") select coords.Value;
foreach (var coords in coordquery)
{
listBox1.Items.Add(coords);
}
Поведение/проблема:
Это будет правильно проанализировать некоторые файлы и захватить все горизонтально выровненных координатам, но и другие файлы, которые он будет просто захватить первый набор разделенные запятыми координаты и остановка в разделителе пространства.
Пример содержимого GML файла:
<?xml version="1.0" encoding="utf-8" ?>
<ogr:FeatureCollection
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ogr.maptools.org/ zprocess.xsd"
xmlns:ogr="http://ogr.maptools.org/"
xmlns:gml="http://www.opengis.net/gml">
<gml:boundedBy>
<gml:Box>
<gml:coord><gml:X>-102.3542101578954</gml:X><gml:Y>48.27850492279583</gml:Y></gml:coord>
<gml:coord><gml:X>-100.6813690821913</gml:X><gml:Y>48.46080715637999</gml:Y></gml:coord>
</gml:Box>
</gml:boundedBy>
<gml:featureMember>
<ogr:Dak fid="F0">
<ogr:geometryProperty><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>-100.68704653821987,48.450386310687691 -100.68707054736575,48.450298060122066 -100.68710318142342,48.450211043099841 -100.68714430060783,48.450125632233721</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
<ogr:Id>0</ogr:Id>
<ogr:Dist>500.00000000000</ogr:Dist>
</ogr:Dak>
</gml:featureMember>
</ogr:FeatureCollection>
Если кто-то все равно, чтобы определить лучший способ сделать это или разработать о том, как правильно использовать LINQ для XML при анализе разделов с XML, я бы навсегда благодарен !
Уважением, -GeekSmurf
Что именно вы хотите извлечь из XML-файла? –
Все данные между тегами ... gml: maps> –
GeekSmurf
@GeekSmurf - это файл GML _simply_ захватить первый набор разделенных запятой коордов? –