NASıL YAPıLıR: Bulun ve bir <a0>XML</a0> dosyasındaki özel karakterler, Visual Basic .NET ile Değiştir

Makale çevirileri Makale çevirileri
Makale numarası: 308060 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, Visual Basic. NET'i kullanarak bir Genişletilebilir Biçimlendirme Dili (XML) dosyasındaki özel karakterleri değiştirme.

Tekniğin Açıklaması

XML, aksi Biçimleme Dili bir parçası olarak yorumlanan özel karakterler aşağıdaki beş varlık başvuruları predefines:

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


Sol açılı ayraç "ve" işareti ve diğer sınırlayıcıları üzere, varlık ve karakter başvuruları kullanabilirsiniz. Sayısal karakter başvuruları da kullanabilirsiniz; bunlar hemen kabul ve sayısal karakter başvuruları kullanabilirsiniz; böylece karakter veri değerlendirilir genişletilmiş

Aşağıdaki iki varlık birini bildirmek için
  • lt
  • amp
iç varlıkları değiştirme metni öncesinde ilgili karakteri (sol açılı ayraç veya ve işareti) karakter başvurusu olarak bunları bildirmeniz gerekir; böylece bunları başvurular doğru biçimlendirilmiş bir sonuç üreten çift escaping bu varlıklar için gereklidir.

Aşağıdaki üç varlıkları bildirmek için
  • gt
  • apos
  • quot
bunları tek değiştirme metni olduğu gibi iç varlıkları bildirmek zorunda virgüllerden önce karakter.

Özel bir karakter değiştirme gereklidir olup olmadığını belirleme

Gerekli değil: XML dosyaları hangi verileri bir veritabanından alındı

Microsoft .NET Framework'Ü kullanırken, veri alınır ve DataSet içinde depolanır. WriteXml yöntemini kullanarak bir XML dosyasına bir DataSet nesnesinden veri yazıyorsanız, "Özet" bölümünde anılan özel karakterleri ile ilgili karakter başvuruları değiştirilir; bu nedenle, XML dosyalarını yazıyorsanız ve kullandığınız bir DataSet, hiçbir özel değiştirme işlemi gerekmez.

Gereken: Bir XML dosyasıyla özel karakterler

Bazen XML dosyası veya bir üçüncü taraftan gelen XML verileri bu özel karakterleri kullanabilir; XmlDocument nesne veya nesne XmlReader yüklediğinizde bu senaryoda, verileri hata üretir.

Ampersan karakteri oluştuğunda, aşağıdaki hata oluşturulur:
Satır #, # getirin ayrıştırma entity_name, bir hata oluştu.
Burada # satır ve # temsil özel (special) karakterin tam konumunu konumlandırın.

Aşağıdaki hata oluşuyor bir sol açılı ayraç karşılaştı:
' < ' Karakteri, onaltılık 0x3C değer, ad içinde yer alamaz. Satır#, position #.
Bu hata iletisindeki satır # ve # değil belirtmek konumu sol açılı ayraç var olduğunda, ancak ikinci sol açılı ayraç karşılaştı burada konum.

XML dosyası, bir sağ açılı ayraç (&gt;), <a2>düz tırnak işareti ('')</a2> veya <a4>kesme işareti (') varsa, bunlar tarafından işlenenBu karakter için yalnızca tek bir karakter yerine gerektiğinden nesneleri XmlReader ve XmlDocument.

Özel karakterleri değiştirme

Ve işareti ve sol açılı ayraç karakteri değiştirmek için <a0></a0>:
  1. XML dosyası oluşturun.
  2. Visual Basic .NET uygulaması oluşturma ve kodunu ekleyin.

XML dosyası oluşturma

Kopyalama ve aşağıdaki kodu Not Defteri'ne yapıştırın ve dosyayı customers.xml kaydedin:
<?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>
				

Visual Basic .NET projesi oluşturma

  1. Yeni bir Visual Basic .NET Windows uygulaması.
  2. Bir TextBox ve iki Düğme denetimi DataGrid taşımak için bir sürükle ve bırak işlemi kullanın.
  3. TextBoxçok satırlı özelli?inin true olarak ayarlayın.
  4. Aşağıdaki ad alma:
    Imports System.Xml
    Imports System.IO
    Imports System.Data.SqlClient
    					
  5. Aşağıdaki bölümde
    Inherits System.Windows.Forms.Form
    kopyalayıp aşağıdaki kod örneği:
     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. Aşağıdaki kod Button1tıklatın olay yapıştırın:
    Dim xmldoc As New XmlDocument()
            xmldoc = LoadXMLDoc()
            Dim nextnode As XmlNode
            nextnode = xmldoc.FirstChild.NextSibling
            TextBox1.Text = nextnode.OuterXml
    					
  7. Aşağıdaki kod Button2tıklatın olay yapıştırın:
    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. Sunucu adı, kullanıcı adı ve Microsoft SQL Server çalıştıran sunucunuza bağlanmak için parolayı değiştirin.
  9. Projeyi derleyin ve çalıştırın.
  10. Button1</a1> düğmesini tıklatın.

    "Gerekli: bir XML dosyası ile özel karakterleri" bölümünde açıklanmıştır hataların açıklamasını tutarlı, aldığınız hata var. XML verileri TextBox görüntülenir; "ve" işareti ile değiştirilir
  11. BUTTON2</a1> düğmesini tıklatın.

    DataGridcompanyname ampersan vardır ve TextBox XML verileri gösterir.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
251354NASıL YAPıLıR: Bulun ve bir XML belgesi içinde özel karakterler, Visual Basic ile Değiştir

Özellikler

Makale numarası: 308060 - Last Review: 3 Eylül 2003 Çarşamba - Gözden geçirme: 3.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Anahtar Kelimeler: 
kbmt kbgrpdsmsxml kbhowtomaster kbmsxml KB308060 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:308060

Geri Bildirim Ver

 

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