ich mit XML-Daten aus einer Anwendung zu arbeiten, wo wir XML wie diese:Wie verwende ich XmlDocument und/oder XDocument, um in Windows 1252 codierte numerische Zeichenreferenzen zu analysieren?
<elt attrib="Swedish: ä ö Euro: € Quotes: ‘ ’ “ ”">
Swedish: ä ö Euro: € Quotes: ‘ ’ “ ”
</elt>
I der Attributwert und innere Textwerte
Swedish: ä ö Euro: € Quotes: ‘ ’ “ ”
aber Code wie folgt sein soll:
Dim sXml As String = "<?xml version = ""1.0"" encoding = ""Windows-1252""?>" & vbCrLf & _
"<elt attrib=""Swedish: ä ö Euro: € Quotes: ‘ ’ “ ”"">" & _
"Swedish: ä ö Euro: € Quotes: ‘ ’ “ ”" & _
"</elt>"
Dim X As New XmlDocument
X.LoadXml(sXml)
TextBox1.Text = "Attribute: {" & X.DocumentElement.Attributes("attrib").Value & "}" & _
vbCrLf & "InnerText: {" & X.DocumentElement.InnerText & "}" & vbCrLf & _
"Length: " & Convert.ToString(Len(X.DocumentElement.InnerText))
oder dies:
Dim X As XDocument = XDocument.Parse(sXml)
TextBox1.Text = "Attribute: {" & X.Root.Attribute("attrib").Value & "}" & _
vbCrLf & "InnerText: {" & X.Root.Value & "}" & vbCrLf & _
"Length: " & Convert.ToString(Len(X.Root.Value))
mir geben:
{Swedish: ä ö Euro: Quotes: }
Sie haben sowohl die Länge auf 36 richtig ist, so offensichtlich, wo ich die Euro und Zitate wollen etwas anderes vermutlich auf einem Unicode-Codierung Ich bin immer bezogen.
Raten Sie, sie geben aus, was Sie "nicht ganz XML" nennen. In unserem Fall funktioniert Regex möglicherweise OK, weil es keine CDATA-Blöcke gibt. Irgendwelche anderen möglichen Krisenherde kommen in den Sinn von CDATA?Danke für die Erklärung und den Vorschlag. –
Technisch gesehen werden Charakter- und Entity-Referenzen in Kommentaren und PIs nicht erweitert, aber ich bin mir ziemlich sicher, dass dir das erstere egal sein wird und dass es sehr unwahrscheinlich ist, dass du dich für letzteres interessierst. –
Richtig, in den Daten, die wir bekommen, kommen weder Kommentare noch PIs vor. Danke, das ist sehr hilfreich. –