LINQ에서 XML에서 XElement의 .innerText 값을 어떻게 얻을 수 있습니까?
-
03-07-2019 - |
문제
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로 코딩 한 지 오래되었습니다.
제휴하지 않습니다 StackOverflow