遇到的问题:图中数据有五个。没错。可是xml每个数据不一样。不知道哪个地方导致的。
也没啥代码 感觉是 命名空间导致的。好麻烦。谁能帮帮我
我需要的功能是 kml文件中经纬度提取
xml文件内容什么样的?需要提取什么哪个节点内容?xml文件内容不要截图,直接贴源代码,用编辑器工具</>
格式下
有报错之类的吗,没有图片,啥也看不出来
xmlDoc.Load(filename);
XmlNamespaceManager xnm = new XmlNamespaceManager(xmlDoc.NameTable);
xnm.AddNamespace("gx", "http://www.opengis.net/kml/2.2");
XmlNodeList xnList = xmlDoc.SelectNodes("/gx:kml/gx:Document/gx:Folder/gx:Placemark", xnm);
//Console.WriteLine("共有{0}个节点", xnList.Count);
foreach (XmlNode xn in xnList)
{
string name = xn.SelectSingleNode("//gx:Placemark/gx:name", xnm).InnerText;
string longitude = (xn.SelectSingleNode("//gx:longitude", xnm)).InnerText;
string latitude = xn.SelectSingleNode("//gx:latitude", xnm).InnerText;
Console.WriteLine("name:" + name + "/longitude:" + longitude + "/latitude:" + latitude);
}
<?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>定位.kml</name>
<Style id="s_ylw-pushpin_hl">
<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>
</Style>
<Style id="s_ylw-pushpin">
<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>
</Style>
<StyleMap id="m_ylw-pushpin">
<Pair>
<key>normal</key>
<styleUrl>#s_ylw-pushpin</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#s_ylw-pushpin_hl</styleUrl>
</Pair>
</StyleMap>
<Folder>
<name>定位</name>
<open>1</open>
<Placemark>
<name>1-1</name>
<LookAt>
<longitude>121.4350381345972</longitude>
<latitude>29.65372536395734</latitude>
<altitude>0</altitude>
<heading>0.02357543614335379</heading>
<tilt>24.96367041590048</tilt>
<range>464.3339448082851</range>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<styleUrl>#m_ylw-pushpin</styleUrl>
<Point>
<gx:drawOrder>1</gx:drawOrder>
<coordinates>121.4348213097205,29.65437545379259,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>1-2</name>
<LookAt>
<longitude>121.4350381345972</longitude>
<latitude>29.65372536395734</latitude>
<altitude>0</altitude>
<heading>0.02357543614335379</heading>
<tilt>24.96367041590048</tilt>
<range>464.3339448082851</range>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<styleUrl>#m_ylw-pushpin</styleUrl>
<Point>
<gx:drawOrder>1</gx:drawOrder>
<coordinates>121.435147476844,29.65433551735939,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>1-3</name>
<LookAt>
<longitude>121.4350381345972</longitude>
<latitude>29.65372536395734</latitude>
<altitude>0</altitude>
<heading>0.02357543614335379</heading>
<tilt>24.96367041590048</tilt>
<range>464.3339448082851</range>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<styleUrl>#m_ylw-pushpin</styleUrl>
<Point>
<gx:drawOrder>1</gx:drawOrder>
<coordinates>121.4355276959351,29.65428476695751,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>2-1</name>
<LookAt>
<longitude>121.4350381345972</longitude>
<latitude>29.65372536395734</latitude>
<altitude>0</altitude>
<heading>0.02357543614335379</heading>
<tilt>24.96367041590048</tilt>
<range>464.3339448082851</range>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<styleUrl>#m_ylw-pushpin</styleUrl>
<Point>
<gx:drawOrder>1</gx:drawOrder>
<coordinates>121.4347531684686,29.65386240423394,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>2-2</name>
<LookAt>
<longitude>121.4350381345972</longitude>
<latitude>29.65372536395734</latitude>
<altitude>0</altitude>
<heading>0.02357543614335379</heading>
<tilt>24.96367041590048</tilt>
<range>464.3339448082851</range>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<styleUrl>#m_ylw-pushpin</styleUrl>
<Point>
<gx:drawOrder>1</gx:drawOrder>
<coordinates>121.4350636965102,29.6538341429091,0</coordinates>
</Point>
</Placemark>
</Folder>
</Document>
</kml>
```c#
输出结果
name:1-1/longitude:121.4350381345972/latitude:29.65372536395734
name:1-2/longitude:121.4350381345972/latitude:29.65372536395734
name:1-3/longitude:121.4350381345972/latitude:29.65372536395734
name:2-1/longitude:121.4350381345972/latitude:29.65372536395734
name:2-2/longitude:121.4350381345972/latitude:29.65372536395734
而我想要的是
name:1-1/longitude..........
name:1-2/longitude..........
name:1-3/longitude..........
name:1-4/longitude..........
name:1-5/longitude..........
```