我一直在尝试将 Google Earth KML 文件转换为 GIS shapefile(或其他 GIS 文件格式,例如 Postgresql/PostGIS 表)(参见 - GIS.stackexchange question here基本上我想将 KML 文件转换为CSV。
我的问题是 KML 文件包含一些存储在 HTML 表中的数据,因此解析的 KML 文件在我的结果数据表中有一个字段,其中包含如下 HTML:
"<br><br><br>
<table border="1" padding="0">
<tr><td>ID_INT</td><td>NGA0104001</td></tr>
<tr><td>N_sd</td><td>Igbere</td></tr>
<tr><td>Skm2</td><td>3.34</td></tr>
<tr><td>PT2010</td><td>13000</td></tr>"
使用GDAL库时,我最终得到一个 CSV 文件,其中一个字段包含一大块 HTML。我希望使用 BeautifulSoup(或一些类似的 Python 库)将 KML 文件的 HTML 元素解析为我的 CSV 文件中的四个单独的字段。我似乎能够将 KML 传递给 BeautifulSoup,但不确定从这里做什么,或者是否确实有另一种方法可以实现相同的目标。
我在这里和其他地方已经阅读了很多关于这个主题的类似问题,但我真的不知道从哪里开始解析这个文件。有没有人成功实现这一目标?非常,非常感谢提前...
哦,这是我的 KML 文件中的一段代码作为示例:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<name>AFNGA_SWAC.kml</name>
<open>1</open>
<Style id="s_ylw-pushpin1">
<IconStyle>
<scale>1.1</scale>
<Icon>
<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>
</Icon>
<hotSpot x="20" y="2" xunits="pixels" yunits="pixels"/>
</IconStyle>
<LineStyle>
<color>ff00ffff</color>
<width>3</width>
</LineStyle>
<PolyStyle>
<color>3300ffff</color>
</PolyStyle>
</Style>
<StyleMap id="m_ylw-pushpin1">
<Pair>
<key>normal</key>
<styleUrl>#s_ylw-pushpin1</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#s_ylw-pushpin_hl1</styleUrl>
</Pair>
</StyleMap>
<Style id="s_ylw-pushpin_hl1">
<IconStyle>
<scale>1.3</scale>
<Icon>
<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>
</Icon>
<hotSpot x="20" y="2" xunits="pixels" yunits="pixels"/>
</IconStyle>
<LineStyle>
<color>ff00ffff</color>
<width>3</width>
</LineStyle>
<PolyStyle>
<color>3300ffff</color>
</PolyStyle>
</Style>
<Folder>
<name>AFNGA_SWAC</name>
<open>1</open>
<description>1027 Éléments de la couche Afnga_swac</description>
<Placemark>
<name>Aba</name>
<description><![CDATA[<br><br><br>
<table border="1" padding="0">
<tr><td>ID_INT</td><td>NGA0101001</td></tr>
<tr><td>N_sd</td><td>Aba</td></tr>
<tr><td>Skm2</td><td>384.07</td></tr>
<tr><td>PT2010</td><td>1010000</td></tr>]]></description>
<styleUrl>#m_ylw-pushpin1</styleUrl>
<Polygon>
<extrude>1</extrude>
<tessellate>1</tessellate>
<outerBoundaryIs>
<LinearRing>
<coordinates>
7.294567000000001,5.00267,0 7.294408999999999,5.002552,0 7.294211,5.002394,0