AKO: Vyhľadajte a nahradenie špeciálnych znakov v súbore XML v jazyku Visual Basic.NET

Preklady článku Preklady článku
ID článku: 308060 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

SUHRN

Tento článok popisuje nahradiť špeciálne znaky v Extensible Markup Language (XML) súboru pomocou Visual Basic .NET.

Popis technika

XML preddefinuje nasledujúce päť odkazov subjektu na špeciálne znaky, ktoré by inak vykladať ako súčasť značkovací jazyk:

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;


Môžete použiť subjektu a charakter odkazy uniknúť Ľavá lomená zátvorka ampersand a iné oddeľovače. Môžete použiť aj číselného znaku odkazy; sa rozbalia okamžite, keď sú uznávané a sú považované za znakových údajov, takže môžete použiť numerické vyjadrenie

Ak sa vyhlási buď tieto dva subjekty
  • lt
  • amp
budete musieť vyhlásiť ich ako interné subjekty meradlách text je znak odkaz na príslušných znakov (ľavý uhol hranatá zátvorka alebo ampersand) že je pričom úteku; dvojité úteku je požadovaný pre tieto subjekty, aby odkazy na ne vyrábať dobre-tvarovaná výsledok.

Ak sa vyhlási ktoréhokoľvek z nasledujúcich troch subjektov
  • gt
  • apos
  • quot
budete musieť vyhlásiť ich ako interné subjekty meradlách text je jeden znak je unikli.

Určiť, či špeciálne náhradný znak je potrebný

Nevyžaduje: Súbory XML v ktorých údaje sa načítajú z databázy

Ak používate Microsoft.NET Framework, údaje sú Zdroj: a uložené v Množina údajov. Keď ste písanie údajov z Množina údajov do súboru XML pomocou WriteXml metóda, špeciálne znaky, ktoré sú uvedené v "Prehľad" oddiel sa nahrádzajú odkazom príslušných znakov; preto, keď ste písanie súborov XML a používate Množina údajov, nevyžaduje sa žiadny špeciálny náhradný proces.

Požadované: Súbor XML s špeciálne znaky

Niekedy súbor XML alebo údajov XML, ktoré pochádzajú tretia strana môže uplatniť tieto špeciálne znaky; v tomto scenári, údaje generuje chyby, keď môžete načítať do XmlDocument objekt alebo XmlReader objekt.

Nasledujúca chyba vygenerovaný pri znak ampersand narazil:
Vyskytla sa chyba zatiaľ čo parsování entity_name, riadok #, pozícia #.
Ak riadok # a poloha # predstavujú presnú polohu špeciálne znak.

Nasledujúca chyba sa vyskytuje, keď Ľavá lomená zátvorka narazil:
"<' character,="" hexadecimal="" value="" 0x3c,cannot="" be="" included="" in="" a="" name.=""></'> #, pozícia #.
V tomto chybovom hlásení, riadok # a poloha # ne- Uveďte polohu, ak existuje Ľavá lomená zátvorka, ale kde druhý Ľavá lomená zátvorka sa vyskytuje.

Ak súbor XML obsahuje právo lomená zátvorka (&gt;), rovné úvodzovky (") alebo apostrof ("), tieto sú spracovávané XmlReader a XmlDocument objekty, pretože iba jeden znak nahradenie je potrebné pre tieto znaky.

Nahradiť špeciálne znaky

Nahradiť ampersand a Ľavá lomená zátvorka znakov:
  1. Vytvoriť súbor XML.
  2. Vytvoriť Visual Basic.NET aplikácie a potom vložte kód.

Vytvorenie súboru XML

Skopírujte a prilepte nasledujúci kód do programu Poznámkový blok a potom uložiť súbor ako 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>
				

Vytvoriť jazyka Visual Basic.NET projektu

  1. Vytvoriť nové Visual Basic.NET Windows aplikácia.
  2. Použiť techniky "presunúť a pustiť" ("drag-and-drop operácie na presun Blok textudva Tlačidlo Ovládacie prvky, a Údajová mriežka.
  3. Nastaviť Multiline Vlastnosť Blok textu na Pravda.
  4. Importovať tieto priestory názvov:
    Imports System.Xml
    Imports System.IO
    Imports System.Data.SqlClient
    					
  5. Po nasledujúcom oddiele
    Inherits System.Windows.Forms.Form
    kopírovanie a prilepenie Nasledujúca ukážka kódu:
     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. Skopírujte a prilepte nasledujúci kód do Kliknite na tlačidlo v prípade Button1:
    Dim xmldoc As New XmlDocument()
            xmldoc = LoadXMLDoc()
            Dim nextnode As XmlNode
            nextnode = xmldoc.FirstChild.NextSibling
            TextBox1.Text = nextnode.OuterXml
    					
  7. Skopírujte a prilepte nasledujúci kód do Kliknite na tlačidlo v prípade 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. Zmeniť názov servera, meno používateľa a heslo pripojiť na server, ktorý je spustený server Microsoft SQL Server.
  9. Vybudovať projektu a potom ho spustite.
  10. Kliknite na tlačidlo Button1.

    Chyby, ktoré prijímate sú konzistentné s popis chyby, ktoré sú vysvetlené v "vyžaduje: súbor XML s Špeciálne znaky"sekcii. Údaje XML sa potom zobrazí v Blok textu; ampersand nahrádza s
  11. Kliknite na položku Button2.

    V Údajová mriežka, CompanyName má ampersand a Blok textu zobrazuje údaje XML s

ODKAZY

Ďalšie informácie získate kliknutím na číslo článku nižšie zobrazíte článok v databáze Microsoft Knowledge Base:
251354 AKO: Vyhľadanie a nahradenie špeciálnych znakov v dokumente XML program Visual Basic

Vlastnosti

ID článku: 308060 - Posledná kontrola: 1. novembra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Kľúčové slová: 
kbgrpdsmsxml kbhowtomaster kbmsxml kbmt KB308060 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:308060

Odošlite odozvu

 

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