كيف يمكنني الحصول على XElement هو .InnerText قيمة في Linq to XML ؟
-
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
ولكن XElement كائن لا يملك InnerText الملكية ، أو أي ما يعادل بقدر ما استطيع ان اقول.كيف احصل الخام XML الذي يعرف XElement?
المحلول
ما كنت في عداد المفقودين أن Placemark.<g:Polygon>
هو مجموعة من XElements ، XElement.يعمل هذا:
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
XElement.ToString هو ما يعادل InnerText ، tbrownell المقترحة.
نصائح أخرى
هل جربت:
Placemark.ToString()
لقد غاب عن التعداد أيضا.عند استخدام .القيمة الممكن أن تتلقى فارغة استثناء.حاول equivelent هذا بدلا من ذلك:
(string)Placemark.<g:name>
آسف غير متأكد من VB الجملة ، ، ، فقد كان منذ بعض الوقت لقد مشفرة في VB.
لا تنتمي إلى StackOverflow