CARA: Temukan dan mengganti karakter khusus dalam sebuah File XML dengan Visual Basic.NET

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 308060 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menjelaskan cara untuk mengganti karakter khusus dalam Extensible Markup Language (XML) file dengan menggunakan Visual Basic .NET.

Deskripsi teknik

XML predefines referensi entitas lima berikut untuk khusus karakter yang jika tidak dapat ditafsirkan sebagai bagian dari markup language:

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;


Anda dapat menggunakan referensi entitas dan karakter untuk melarikan diri braket sudut kiri, ampersand, dan delimiters lainnya. Anda juga dapat menggunakan karakter numerik referensi; mereka yang diperluas segera ketika mereka diakui dan mereka diperlakukan sebagai karakter data, sehingga Anda dapat menggunakan referensi karakter numerik

Jika Anda adalah menyatakan salah satu dari dua entitas berikut
  • Lt
  • amp
Anda harus menyatakan mereka sebagai entitas internal pengganti yang teks adalah referensi karakter untuk masing-masing karakter (kiri sudut braket atau ampersand) yang adalah yang melarikan diri; melarikan diri ganda adalah diperlukan untuk entitas ini sehingga rujukan kepada mereka menghasilkan well-formed hasil.

Jika Anda adalah menyatakan salah satu entitas tiga berikut
  • gt
  • apos
  • quot
Anda harus menyatakan mereka sebagai entitas internal pengganti yang teks adalah karakter tunggal yang sedang melarikan diri.

Menentukan apakah pengganti karakter khusus diperlukan

Tidak diperlukan: XML file di mana Data yang Diperoleh dari Database

Ketika Anda menggunakan Microsoft.NET Framework, data yang Diperoleh dan disimpan dalam DataSet. Ketika Anda menulis data dari DataSet untuk sebuah file XML dengan menggunakan WriteXml metode, karakter khusus yang disebut dalam Bagian "Ringkasan" diganti dengan karakter masing-masing referensi; oleh karena itu, ketika Anda menulis file XML dan Anda menggunakan DataSet, tidak ada proses penggantian khusus diperlukan.

Data diperlukan: Sebuah File XML dengan karakter khusus

Kadang-kadang berkas XML atau XML data yang akan datang dari pihak ketiga mungkin menggunakan karakter khusus ini; dalam skenario ini, data menghasilkan kesalahan ketika Anda memuat itu ke XmlDocument objek atau XmlReader objek.

Galat berikut yang dihasilkan ketika karakter ampersand mengalami:
Terjadi kesalahan Sementara parsing entity_name, baris #, posisi #.
di mana baris # dan posisi # mewakili posisi tepat khusus karakter.

Kesalahan berikut terjadi ketika braket sudut kiri Temui:
The '<' character,="" hexadecimal="" value="" 0x3c,cannot="" be="" included="" in="" a="" name.=""></'> #, posisi #.
Dalam pesan kesalahan ini, baris # dan posisi # Jangan menunjukkan posisi di mana ada braket sudut kiri, tapi di mana kedua braket sudut kiri ditemui.

Jika file XML yang berisi hak sudut braket (>), tanda kutip langsung (") atau apostrophe ('), ini ditangani oleh XmlReader dan XmlDocument objek karena hanya satu karakter pengganti diperlukan untuk karakter ini.

Mengganti karakter khusus

Untuk menggantikan ampersand dan karakter braket sudut kiri:
  1. Buat XML file.
  2. Menciptakan Visual Basic.NET aplikasi, dan kemudian masukkan kode.

Buat XML File

Copy dan paste kode berikut ke Notepad, dan kemudian simpan file sebagai 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>
				

Menciptakan Visual Basic.NET proyek

  1. Buat baru Visual Basic.NET Windows aplikasi.
  2. Gunakan operasi seret-dan-jatuhkan untuk memindahkan TextBoxdua Tombol kontrol, dan DataGrid.
  3. Menetapkan Multiline properti TextBox untuk Benar.
  4. Impor ruang nama berikut:
    Imports System.Xml
    Imports System.IO
    Imports System.Data.SqlClient
    					
  5. Setelah bagian berikut
    Inherits System.Windows.Forms.Form
    copy dan paste contoh kode berikut:
     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. Copy dan paste kode berikut ke Klik peristiwa Button1:
    Dim xmldoc As New XmlDocument()
            xmldoc = LoadXMLDoc()
            Dim nextnode As XmlNode
            nextnode = xmldoc.FirstChild.NextSibling
            TextBox1.Text = nextnode.OuterXml
    					
  7. Copy dan paste kode berikut ke Klik peristiwa 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. Mengubah nama server, nama pengguna dan password untuk menyambung ke server yang menjalankan Microsoft SQL Server.
  9. Membangun proyek, dan kemudian jalankan.
  10. Klik Button1.

    Kesalahan yang Anda terima konsisten dengan Deskripsi galat yang dijelaskan dalam "diperlukan: sebuah File XML dengan Karakter khusus"bagian. XML data kemudian ditampilkan dalam TextBox; ampersand diganti dengan
  11. Klik Button2.

    Dalam DataGrid, companyname telah ampersand dan TextBox menunjukkan data XML dengan

REFERENSI

Untuk informasi tambahan, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
251354 CARA: Temukan dan mengganti karakter khusus dalam dokumen XML dengan Visual Basic

Properti

ID Artikel: 308060 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Kata kunci: 
kbgrpdsmsxml kbhowtomaster kbmsxml kbmt KB308060 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:308060

Berikan Masukan

 

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