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

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 308060 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt die Sonderzeichen in einer XML-Datei mithilfe von Visual Basic .NET zu ersetzen.

Beschreibung der Technik

XML definiert die folgenden fünf Entität Verweise für Sonderzeichen, die andernfalls als Teil der Markup-Sprache interpretiert werden:

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


Entität und Zeichen-Verweise können Sie die linke Spitze Klammer, das kaufmännische und-Zeichen sowie andere Trennzeichen Escapezeichen. Sie können auch numerische Zeichenverweise; diese werden erweitert, sofort, wenn Sie erkannt werden und Sie werden als Zeichendaten, behandelt, sodass Sie die numerischen Zeichenverweise verwenden können

Wenn Sie eine der folgenden zwei Entitäten deklarieren
  • lt
  • amp
müssen Sie diese als interne Einheiten deklarieren, dessen Ersetzungstext ein Zeichenverweis auf das jeweilige Zeichen (die linke Spitze Klammer oder das kaufmännische und-Zeichen) ist, die mit Escapezeichen versehen ist; doppelte Escapezeichen ist für diese Entitäten erforderlich, sodass Verweise auf diese wohlgeformte Ergebnis.

Wenn Sie eine der folgenden drei Entitäten deklarieren
  • gt
  • apos
  • quot
müssen Sie diese als interne Entitäten deklarieren, dessen Ersetzungstext der einzelnen ist, Zeichen werden mit Escapezeichen versehen.

Bestimmen Sie, ob eine spezielle Zeichen ersetzen erforderlich ist

Nicht erforderlich: In der die Daten aus einer Datenbank abgerufene ist XML-Dateien

Wenn Sie Microsoft .NET Framework verwenden, Daten abgerufen und in einem DataSet gespeichert werden. Wenn Sie Daten aus einem DataSet in eine XML-Datei schreiben mit Hilfe der WriteXml -Methode, werden die Sonderzeichen, die im Abschnitt "Zusammenfassung" bezeichnet werden, mit der jeweiligen Zeichenverweise ersetzt; daher, wenn Sie XML-Dateien schreiben und ein DataSet verwenden, keine spezielle Ersatz-Prozess ist erforderlich.

Erforderlich: Ein XML-Datei mit Sonderzeichen

Manchmal die XML-Datei oder der XML-Daten, die von einem Drittanbieter stammt möglicherweise diese Sonderzeichen verwenden; in diesem Szenario die Daten erzeugt Fehler beim Laden in ein XmlDocument -Objekt oder ein XmlReader -Objekt.

Der folgende Fehler wird generiert, wenn das kaufmännische und-Zeichen vorgefunden wird:
Fehler beim Analysieren entity_name Zeile #, # positionieren.
wobei Zeile # und positionieren # repräsentieren die genaue Position des Sonderzeichens zu.

Der folgende Fehler tritt beim eine linke Spitze Klammer:
Die ' < ' Zeichen, hexadezimaler Wert 0x3C, konnte nicht in einen Namen aufgenommen werden. Zeile#, position #.
In dieser Fehlermeldung der Zeile # und Position # nicht die Position angeben, wo die linke Spitze Klammer vorhanden ist, jedoch die zweite linke Spitze Klammer gefunden wird.

Wenn die XML-Datei eine rechte spitze Klammer (>), gerade Anführungszeichen ('') oder ein Apostroph (') enthält, werden diese durch behandelt die XmlReader und XmlDocument -Objekten, da nur einzelne Zeichen Ersatz für diese Zeichen benötigt wird.

Die Sonderzeichen ersetzen

Um das kaufmännische und-Zeichen und die linke Spitze Klammerzeichen zu ersetzen:
  1. Erstellen der XML-Datei.
  2. Erstellen Sie die Anwendung Visual Basic .NET, und fügen Sie den Code.

Erstellen der XML-Datei

Kopieren Sie den 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>
				

Erstellen Sie Visual Basic .NET-Projekts

  1. Erstellen Sie eine neue Visual Basic .NET-Windows-Anwendung.
  2. Verwenden Sie eine Drag & Drop Operation, um ein Textfeld , zwei Button -Steuerelemente und ein DataGrid verschieben.
  3. Legen Sie die MultiLine -Eigenschaft des TextBox auf true fest.
  4. Importieren Sie die folgenden Namespaces:
    Imports System.Xml
    Imports System.IO
    Imports System.Data.SqlClient
    					
  5. Nach dem folgenden Abschnitt
    Inherits System.Windows.Forms.Form
    kopieren und Einfügen im folgenden 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 den 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 den 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 Namen des Servers, den Benutzernamen und Kennwort an den Server, auf dem Microsoft SQL Server ausgeführt wird.
  9. Erstellen Sie das Projekt, und führen Sie es.
  10. Klicken Sie auf Button1 .

    Fehler, die Sie erhalten sind konsistent mit der Beschreibung der Fehler, die im Abschnitt "Erforderlich: eine XML-Datei mit Sonderzeichen" erläutert werden. Die XML-Daten werden dann in das Textfeld angezeigt, das kaufmännische und-Zeichen wird durch ersetzt
  11. Klicken Sie auf Button2.

    Im DataGrid Companyname hat ein kaufmännisches und-Zeichen, und das Textfeld zeigt die XML-Daten mit

Informationsquellen

Weitere Informationen finden Sie die Artikel der Microsoft Knowledge Base:
251354Gewusst wie: Suchen und Ersetzen von Sonderzeichen in einem XML-Dokument durch Visual Basic

Eigenschaften

Artikel-ID: 308060 - Geändert am: Mittwoch, 3. September 2003 - Version: 3.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Keywords: 
kbmt kbgrpdsmsxml kbhowtomaster kbmsxml KB308060 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 308060
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com