使用C#中的XML / KML文件阅读 [英] Reading in XML/KML files using C#

查看:582
本文介绍了使用C#中的XML / KML文件阅读的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想的KML XML谷歌地球文件导入到应用程序,但我似乎无法得到的XDocument语法正确的,为了做到我想要的,我想知道如果任何人都可以提出一个方法来读取KML xml文件。



我理解XML导入的基础知识,但不能得到任何与的XDocument和LINQ的工作,理想我想获取每个标作为一个对象,并将其添加到我的实体框架驱动分贝。任何建议,我应该怎么做,这将是巨大的,因为我刚开始使用LINQ和可以与一些指针做。 ?XML版本=1.0编码=UTF-8>低于

 <的XML布局为; 
< KML的xmlns =http://earth.google.com/kml/2.2>
<文件>
<标>
<名称>&XXX LT; /名称>
<描述> XXX和LT; /描述>
< styleUrl> XXX和LT; / styleUrl>
<点和GT;
<&坐标GT; XXX和LT; /坐标>
< /点和GT;
< /标>
<标>
<名称>&XXX LT; /名称>
<描述> XXX和LT; /描述>
< styleUrl> XXX和LT; / styleUrl>
<点和GT;
<&坐标GT; XXX和LT; /坐标>
< /点和GT;
< /标>
< /文件>
< / KML>


解决方案

您不包括任何代码,但我会猜你忘了引用东西的时候,包括您的命名空间。这里有一个例子



基本访问:

  VAR标= xdoc.Element(KML)元素(文档)元素(标)。; 



使用命名空间:

  VAR NS = XNamespace.Get(http://earth.google.com/kml/2.2); 。
无功标= xdoc.Element(NS +KML)元素(NS +文档)元素(NS +标);


I'm trying to import the kml xml Google earth file into an application, but i can't seem to get the xDocument syntax right in order to do what i want, i'm wondering if anyone could suggest a way to read in the kml xml file.

I understand the basics of xml import but can't get anything working with xDocument and Linq, ideally i'd like to get each Placemark as an object and add them to my Entity Framework driven db. Any suggestions as to how i should do this would be great, as i'm just starting out with Linq and could do with some pointers. The xml is laid out as below

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">
  <Document>
    <Placemark>
      <name>XXX</name>
      <description>XXX</description>
      <styleUrl>XXX</styleUrl>
      <Point>
         <coordinates>XXX</coordinates>
      </Point>
    </Placemark>
    <Placemark>
      <name>XXX</name>
      <description>XXX</description>
      <styleUrl>XXX</styleUrl>
      <Point>
         <coordinates>XXX</coordinates>
      </Point>
    </Placemark>
  </Document>
</kml>

解决方案

You didn't include any code, but I would guess that you forgot to include your namespace when referencing things. Here is an example.

Basic access:

var placemarks = xdoc.Element("kml").Element("Document").Elements("Placemark");

Using namespaces:

var ns = XNamespace.Get("http://earth.google.com/kml/2.2");
var placemarks = xdoc.Element(ns + "kml").Element(ns + "Document").Elements(ns + "Placemark");

这篇关于使用C#中的XML / KML文件阅读的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆