문제

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

그러나 Xlement 객체에는 내부 텍스트 속성이 없거나 내가 알 수있는 한 해당하는 것입니다. Xlement를 정의하는 RAW XML을 어떻게 잡습니까?

도움이 되었습니까?

해결책

내가 놓친 것은 그게 Placemark.<g:Polygon> 단일 Xlement가 아닌 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

Xlement.toString은 tbrownell이 제안한 것처럼 내 텍스트와 동일합니다.

다른 팁

시도 했습니까?

Placemark.ToString()

나는 또한 열거를 놓쳤다. .Value를 사용하면 널 예외를받을 수 있습니다. 대신에이를 시도하십시오.

(string)Placemark.<g:name>

VB 구문은 확실하지 않아서 VB로 코딩 한 지 오래되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top