gpt4 book ai didi

c# - 使用 C# Linq to XML 解析 GML 数据

转载 作者:数据小太阳 更新时间:2023-10-29 01:55:47 26 4
gpt4 key购买 nike

我知道这很可能是非常基础的并且被问过一千次但出于某种原因我就是无法让它工作。

我有一个如下所示的 gml 文件:

<?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:coord 节点读取 X 和 Y。我正在使用 C# 3.0 和 LINQ,所以它应该很容易,但我尝试的一切都只返回空结果。

我只在 VB 中做过 xml 解析,所以 C# 方式目前对我来说有点陌生。

谢谢,弥敦道

最佳答案

我的猜测是您没有包含 namespace 。这是一个简短但完整的程序,它显示了所有坐标:

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);
}
}
}

关于c# - 使用 C# Linq to XML 解析 GML 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1818147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com