Gewusst wie: Suchen und Ersetzen von Sonderzeichen in eine XML-Datei durch Visual Basic NET

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 308060
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Zusammenfassung
Dieser Artikel erläutert Sonderzeichen in einer Datei (XML = Extensible Markup Language) mit Visual Basic Net.

back to the top

Beschreibung der Technik

XML definiert die folgenden fünf Entitätsverweise für Sonderzeichen, die andernfalls als Teil der Markupsprache interpretiert werden:

Character NameEntity ReferenceCharacter ReferenceNumeric Reference
Ampersand&&&
Left angle bracket&lt;<&#38;#60;
Right angle bracket&gt;>&#62;
Straight quotation mark&quot;"&#39;
Apostrophe&apos;'&#34;


Entitäts- und Zeichen Verweise können Sie die öffnende spitze Klammer, das kaufmännische und-Zeichen und andere Trennzeichen mit Escapezeichen versehen. Sie können auch numerische Zeichenverweise verwenden. Diese werden erweitert, sobald sie erkannt und behandelt als Zeichendaten, numerischen Zeichenverweise verwenden können

Wenn Sie eine der folgenden beiden Entitäten deklarieren
  • lt
  • amp
Sie müssen als interne Entitäten deklariert, deren Ersetzungstext Zeichen zum jeweiligen Zeichen (öffnende spitze Klammer oder das kaufmännische und-Zeichen) verweist, die mit Escapezeichen versehen werden. doppelte Escapezeichen ist für diese Entitäten erforderlich, damit Verweise wohlgeformt Ergebnis.

Wenn Sie eines der folgenden drei Objekte deklarieren
  • gt
  • nicht möglich
  • quot
haben sie als intern Entitäten auf deren Ersetzungstext die ist Zeichen mit Escapezeichen versehen.

back to the top

Bestimmen Sie, ob Sonderzeichen Ersatz erforderlich ist.

Nicht erforderlich: XML-Dateien in denen Daten aus einer Datenbank abgerufen wird

Bei Verwendung von.NET Framework mit Microsoft Daten abgerufen und in einem DataSetgespeichert. Wenn Sie Daten aus einem DataSet in einer XML-Datei schreiben mithilfe der WriteXml -Methode, werden Sonderzeichen, die im Abschnitt "Zusammenfassung" bezeichnet werden, mit den jeweiligen Zeichenverweise ersetzt. Daher muss beim Schreiben von XML-Dateien und ein DataSetverwenden, keine spezielle Austauschvorgang.

back to the top

Erforderlich: Eine XML-Datei mit Sonderzeichen

Manchmal können der XML-Datei oder XML-Daten, die von Dritten stammen diese Sonderzeichen verwenden. In diesem Fall generiert die Daten Fehler beim Laden in ein XmlDocument -Objekt oder ein XmlReader -Objekt.

Der folgende Fehler wird generiert, wenn das kaufmännische und-Zeichen gefunden wird:
Fehler beim Analysieren Name, Zeile #, Position #.
Zeile # und # darstellen Sie die genaue Position des Sonderzeichens.

Der folgende Fehler tritt auf, wenn eine öffnende spitze Klammer gefunden wird:
Die '<' character,="" hexadecimal="" value="" 0x3c,cannot="" be="" included="" in="" a="" name.=""></'> #, Position #.
In dieser Fehlermeldung der Zeile # und # Geben Sie die Position nicht, wo die öffnende spitze Klammer vorhanden, aber, die zweite Spitze Klammer links gefunden wird.

Enthält die XML-Datei eine schließende spitze Klammer (&gt;) ein gerades Anführungszeichen (") oder ein Apostroph ('), werden diese von XmlReader und XmlDocument -Objekte behandelt, da nur Zeichen Ersatz für diese Zeichen benötigt.

back to the top

Sonderzeichen ersetzen

Das kaufmännische und-Zeichen und die öffnende spitze Klammerzeichen ersetzt:
  1. Erstellen Sie die XML-Datei.
  2. Erstellen der Erweiterbarkeit von Visual Basic und Insertthe Code.
back to the top

Erstellen der XML-Datei

Kopieren Sie und fügen Sie folgenden Code in den Editor und speichern Sie die Datei als Customers.Xml:
<?xml version="1.0" standalone="yes"?><Customers><Customer><CustomerID>BLAUS</CustomerID><CompanyName>Blauer See Delikatessen</CompanyName><ContactName>Hanna Moos</ContactName><Region>test<ing</Region></Customer><Customer><CustomerID>SPLIR</CustomerID><CompanyName>Split Rail Beer & Ale</CompanyName><ContactName>Art raunschweiger</ContactName><Region>WY</Region></Customer></Customers>				
back to the top

Visual Basic-NET-Projekt erstellen

  1. Erstellen Sie ein neues Visual Basic NET Windowsapplication.
  2. Verwenden Sie Drag &amp; Drop-Vorgang TextBox, zwei Button -Steuerelemente und ein DataGridverschieben.
  3. Die Multiline -Eigenschaft des TextBox auf Truefestgelegt.
  4. Importieren Sie die folgenden Namespaces:
    Imports System.XmlImports System.IOImports System.Data.SqlClient					
  5. Nach Abschnitt
    Inherits System.Windows.Forms.Form
    Kopieren Sie und fügen Sie das folgende Codebeispiel:
     Dim filepath As String = "C:\customers.xml"Private Sub ReplaceSpecialChars(ByVal linenumber As Long)        Dim strm As StreamReader        Dim strline As String        Dim strreplace As String        Dim tempfile As String = "C:\temp.xml"        Try            FileCopy(filepath, tempfile)        Catch ex As Exception            MessageBox.Show(ex.Message)        End Try        Dim strmwriter As New StreamWriter(filepath)        strmwriter.AutoFlush = True        strm = New StreamReader(tempfile)        Dim i As Long = 0        While i < linenumber - 1            strline = strm.ReadLine            strmwriter.WriteLine(strline)            i = i + 1        End While        strline = strm.ReadLine        Dim lineposition As Int32        lineposition = InStr(strline, "&")        If lineposition > 0 Then            strreplace = "&amp;"        Else            lineposition = InStr(2, strline, "<")            If lineposition > 0 Then                strreplace = "<"            End If        End If        strline = Mid(strline, 1, lineposition - 1) + strreplace + Mid(strline, lineposition + 1)        strmwriter.WriteLine(strline)        strline = strm.ReadToEnd        strmwriter.WriteLine(strline)        strm.Close()        strm = Nothing        strmwriter.Flush()        strmwriter.Close()        strmwriter = Nothing    End Sub    Public Function LoadXMLDoc() As XmlDocument        Dim xdoc As XmlDocument        Dim lnum As Long        Dim pos As Long        Dim Newxml As String        Try            xdoc = New XmlDocument()            xdoc.Load(filepath)        Catch ex As XmlException            MessageBox.Show(ex.Message)            lnum = ex.LineNumber            ReplaceSpecialChars(lnum)            xdoc = LoadXMLDoc()        End Try        Return (xdoc)    End Function					
  6. Kopieren Sie und fügen Sie folgenden Code in das Click -Ereignis des Button1:
    Dim xmldoc As New XmlDocument()        xmldoc = LoadXMLDoc()        Dim nextnode As XmlNode        nextnode = xmldoc.FirstChild.NextSibling        TextBox1.Text = nextnode.OuterXml					
  7. Kopieren Sie und fügen Sie folgenden Code in das Click -Ereignis des Button2:
    Dim ds As New DataSet()        Dim xdoc As New XmlDocument()        Dim cnNwind As New SqlConnection("Data source=myservername;user id=myuser;Password=mypassword;Initial catalog=Northwind;")        Dim daCustomers As New SqlDataAdapter("Select customerid,companyname,contactname, region from customers where region='WY'", cnNwind)        Dim filepath As String        Try            daCustomers.Fill(ds, "Customers")            DataGrid1.DataSource = ds.Tables(0)            ds.WriteXml("C:\Dataset.xml")            xdoc.Load("C:\Dataset.xml")            Dim nextnode As XmlNode            nextnode = xdoc.FirstChild.NextSibling            TextBox1.Text = nextnode.OuterXml.ToString        Catch ex As Exception            MessageBox.Show(ex.Message)        End Try					
  8. Ändern Sie den Servernamen, den Benutzernamen und Kennwort Verbindung auf Ihre Server mit Microsoft SQL Server.
  9. Erstellen Sie das Projekt, und führen Sie es aus.
  10. Klicken Sie auf Button1.

    Der Fehler entsprechen Thedescription erklärt werden Fehler der "erforderlich: eine XML-Datei Sonderabmessungen Zeichen" Abschnitt. Die XML-Daten werden dann im Textfeldangezeigt. das kaufmännische und-Zeichen wird durch ersetzt.
  11. Klicken Sie auf Button2.

    Im DataGridCompanyname ein kaufmännisches und TextBox mit XML-Daten
back to the top
Informationsquellen
Klicken Sie für Weitere Informationen auf die nachstehende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
251354 Gewusst wie: Suchen und Ersetzen von Sonderzeichen in einem XML-Dokument mit Visual Basic
back to the top

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 308060 – Letzte Überarbeitung: 12/06/2015 05:42:37 – Revision: 4.0

Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft .NET Framework 1.1, Microsoft .NET Framework 1.0

  • kbnosurvey kbarchive kbgrpdsmsxml kbhowtomaster kbmsxml kbmt KB308060 KbMtde
Feedback