Ich habe ein Programm erstellt, wo ich XML-Antworten von Google Maps bekomme. Alles ist gut gelaufen, die Antwort ist in Ordnung, ich kann die XML-Datei korrekt schreiben, und ich kann auch einen bestimmten XML-Knoten lesen, außer wenn es ein Sonderzeichen in der XML-Datei gibt. In meinem Fall, wenn es ein "ë" in "België" in der Datei gibt.vb net 2017 Fehler beim Lesen von XML-Datei
Was kann getan werden, um XML-Dateien mit dieser Art von Zeichen darin lesen zu können. Ändern der "ë" in "e" kann eine Lösung sein, aber es gibt andere Charaktere, die dieses Problem auch geben. Ich suche nach einer Lösung, damit ich die ursprüngliche Antwort von Google verwenden kann.
Vielen Dank
meinen Code als
die
WriteXMLResponseFile(strResult)
lesen
strStatus = ReadXMLData("/DistanceMatrixResponse/status")
de Code zum Schreiben und Lesen
bestimmten Knotendatei schreiben folgt aussiehtPublic Sub WriteXMLResponseFile(ByVal responseData As String, Optional ByVal fileName As String = "\Data\Response.xml")
Dim intFileNr As Integer
intFileNr = FreeFile()
Try
FileOpen(intFileNr, Application.StartupPath & fileName, OpenMode.Output)
PrintLine(intFileNr, responseData)
Catch ex As Exception
MessageBox.Show("The file :" & vbCrLf & Application.StartupPath & fileName & vbCrLf & "does not exist", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
End Try
FileClose(intFileNr)
End Sub
Function ReadXMLData(ByVal dataNode As String, Optional ByVal fileName As String = "\Data\Response.xml") As String
Dim xDoc As XmlDocument = New XmlDocument()
Try
xDoc.Load(Application.StartupPath & fileName)
ReadXMLData = xDoc.SelectSingleNode(dataNode).InnerText
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Die XML-Datei sieht wie folgt aus
<?xml version="1.0" encoding="UTF-8"?>
<DistanceMatrixResponse>
<status>OK</status>
<origin_address>Henleykaai, 9000 Gent, Belgi뼯origin_address>
<destination_address>Nieuwstraat, 1000 Brussel, Belgi뼯destination_address>
<row>
<element>
<status>OK</status>
<duration>
<value>2709</value>
<text>45 min.</text>
</duration>
<distance>
<value>54752</value>
<text>54,8 km</text>
</distance>
<duration_in_traffic>
<value>2504</value>
<text>42 min.</text>
</duration_in_traffic>
</element>
</row>
</DistanceMatrixResponse>
Was passiert also, wenn Sie versuchen, eine solche XML-Datei zu lesen? –
Warum verwenden Sie nicht die geeigneten Methoden aus dem NET Framework, um Dateien zu schreiben? Diese alten Methoden aus der PRE VB6-Ära sind nicht die beste Möglichkeit, XML-Dateien mit Unicode-Zeichen korrekt zu schreiben. – Steve
Die XML-Datei wie oben ist falsch. Es fehlen die schließenden Tags für ' origin_address>' und ' destination_address>' Nicht möglich zu sagen, wenn Sie diese alten Methoden verwenden oder nicht (mein Test legt nahe, dass diese Methoden die Tags nicht entfernen, obwohl sie nicht korrekt sind aus der Datei '' – Steve