我正在尝试将以下KML文件中的Area_No,Dateof,Location,Week和坐标提取到C#Windows Form应用程序中。
<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.test.net">
<Document id="root_doc">
<Schema name="LOC2018" id="LOC2018">
<SimpleField name="AREA_NO" type="string"></SimpleField>
<SimpleField name="DATEOF" type="string"></SimpleField>
<SimpleField name="LOCATION" type="string"></SimpleField>
<SimpleField name="Week" type="string"></SimpleField>
</Schema>
<Folder><name>LOC2018</name>
<Placemark>
<Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle>
<fill>0</fill></PolyStyle></Style>
<ExtendedData><SchemaData schemaUrl="#LOC2018">
<SimpleData name="AREA_NO">1</SimpleData>
<SimpleData name="DATEOF">1899/12/30</SimpleData>
<SimpleData name="LOCATION">TEST ROAD</SimpleData>
<SimpleData name="Week">Week1</SimpleData>
</SchemaData></ExtendedData>
<MultiGeometry><Polygon><altitudeMode>clampToGround</altitudeMode>
<outerBoundaryIs><LinearRing><altitudeMode>clampToGround</altitudeMode>
<coordinates>18.672267,-4.158488 16.494032,-2.401444
16.494032,-2.401444</coordinates></LinearRing></outerBoundaryIs></Polygon>
</MultiGeometry>
</Placemark>
</Folder>
</Document></kml>
我刚开始使用这些文件,并尝试了一些在此站点上找不到的选项。
我可以加载文件并查看节点,但是无法访问SchemaData或坐标中的项目。
到目前为止,我的代码是:
XDocument doc = XDocument.Load(filename);
List<XElement> placemarks = doc.Descendants().Where(x => x.Name.LocalName == "SchemaData").ToList();
foreach (XNode x in placemarks)
{
}
它只是返回一些信息,但不是我可以使用的格式。
有人能指出我该如何获取这些数据的方向吗?
谢谢。
答案 0 :(得分:0)
经过更多搜索和反复试验后,我已经能够从以下代码中获取所需的信息。
XDocument doc = XDocument.Load(filename);
List<XElement> placemarks = doc.Descendants().Where(x => x.Name.LocalName == "SimpleData").ToList();
foreach (XElement x in placemarks)
{
}
可以访问“地标”以获取数据。