3

KML ファイルの目印からポリゴンを抽出しようとしています。ここまでは順調ですね:

Imports <xmlns:g='http://earth.google.com/kml/2.0'>
Imports System.Xml.Linq

Partial Class Test_ImportPolygons
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim Kml As XDocument = XDocument.Load(Server.MapPath("../kmlimport/ga.kml"))
        For Each Placemark As XElement In Kml.<g:Document>.<g:Folder>.<g:Placemark>
            Dim Name As String = Placemark.<g:name>.Value
            ...
        Next
    End Sub

End Class

<polygon>...</polygon>ブロック全体を文字列としてキャプチャしたいと思います。私はこのようなことを試しました(...が上にあります):

        Dim Polygon as String = Placemark.<g:Polygon>.InnerText

しかし、私が知る限り、XElement オブジェクトには InnerText プロパティまたは同等のプロパティがありません。XElement を定義する生の XML を取得するにはどうすればよいですか?

4

3 に答える 3

1

やってみました:

Placemark.ToString()
于 2008-09-30T15:11:59.567 に答える
1

私が見逃していたPlacemark.<g:Polygon>のは、それが単一の XElement ではなく、XElements のコレクションであることです。これは機能します:

    For Each Placemark As XElement In Kml.<g:Document>.<g:Folder>.<g:Placemark>
        Dim Name As String = Placemark.<g:name>.Value
        Dim PolygonsXml As String = ""
        For Each Polygon As XElement In Placemark.<g:Polygon>
            PolygonsXml &= Polygon.ToString
        Next
    Next

tbrownell が提案したように、XElement.ToString は InnerText と同等です。

于 2008-09-30T15:19:00.283 に答える
0

私も列挙を逃した。.Value を使用すると、null 例外を受け取る可能性があります。代わりにこれと同等のものを試してください:

(string)Placemark.<g:name>

VB の構文がわかりません。VB でコーディングしてからしばらく経ちました。

于 2008-09-30T15:36:58.540 に答える