ΤΡΌΠΟΣ: Εντοπίσετε και να αντικαταστήσετε ειδικούς χαρακτήρες σε ένα αρχείο XML με τη Visual Basic.NET

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 308060 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο περιγράφει τον τρόπο για να αντικαταστήσετε ειδικούς χαρακτήρες σε ένα αρχείο Extensible Markup Language (XML) χρησιμοποιώντας τη Visual Basic .NET.

Περιγραφή της τεχνικής

XML predefines τις ακόλουθες πέντε αναφορές οντότητας για ειδικά χαρακτήρες που διαφορετικά να ερμηνευτεί ως τμήμα της γλώσσας markup:

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;


Μπορείτε να χρησιμοποιήσετε αναφορές οντότητας και χαρακτήρα διαφυγή αριστερή αγκύλη, το εμπορικό "και" και άλλα διαχωριστικά. Μπορείτε επίσης να χρησιμοποιήσετε αριθμητικών χαρακτήρων αναφορές. αυτά αναπτύσσονται, αμέσως μόλις τους αναγνωρίζεται και είναι αντιμετωπίζονται ως δεδομένα χαρακτήρων, έτσι μπορείτε να χρησιμοποιήσετε αναφορές αριθμητικών χαρακτήρων

Εάν η οποία κηρύσσει μία από τις ακόλουθες δύο οντότητες
  • lt
  • amp
πρέπει να δηλώσετε ως εσωτερικό οντότητες των οποίων αντικατάστασης κείμενο είναι μια αναφορά χαρακτήρα αντίστοιχο χαρακτήρα (η αριστερή γωνία αγκύλη ή το εμπορικό "και") που είναι υπό escaped. διπλή διαφυγή είναι απαιτείται για αυτές τις οντότητες, ώστε να παράγουν ένα καλοσχεδιασμένο αναφορές τους αποτέλεσμα.

Εάν το οποίο δηλώνεται από τις τρεις ακόλουθες οντότητες
  • gt
  • apos
  • quot
πρέπει να δηλώσετε ως εσωτερικό οντότητες των οποίων αντικατάστασης το κείμενο είναι ο χαρακτήρας που escaped.

Εξακριβώστε αν απαιτείται ένα ειδικό χαρακτήρα αντικατάστασης

Δεν απαιτείται: XML αρχεία, στο οποίο Η ανάκτηση των δεδομένων από μια βάση δεδομένων

Όταν χρησιμοποιείτε το Microsoft.NET Framework, είναι δεδομένα ανάκτηση και αποθηκεύονται σε ένα Το DataSet. Όταν γίνεται εγγραφή δεδομένων από μια Το DataSet σε ένα αρχείο XML χρησιμοποιώντας το WriteXml μέθοδος, οι ειδικοί χαρακτήρες που αναφέρονται στο του Ενότητα "Σύνοψη" αντικαθίστανται από αναφορές αντίστοιχο χαρακτήρα. Επομένως, όταν γράφετε αρχεία XML και χρησιμοποιείτε ένα Το DataSet, απαιτείται καμία διαδικασία ειδικής αντικατάστασης.

Απαιτείται: Ένα αρχείο XML με ειδικούς χαρακτήρες

Μερικές φορές το αρχείο XML ή τα δεδομένα XML που προέρχεται από μια τρίτο μέρος ενδέχεται να χρησιμοποιούν αυτούς τους ειδικούς χαρακτήρες. σε αυτό το σενάριο, τα δεδομένα δημιουργεί σφάλματα όταν φορτώνετε σε μια XmlDocument το αντικείμενο ή ένα XmlReader το αντικείμενο.

Δημιουργείται το ακόλουθο σφάλμα κατά την Εντοπίστηκε χαρακτήρας εμπορικού "και":
Παρουσιάστηκε σφάλμα κατά την ανάλυση entity_name, γραμμή #, θέση #.
όπου # θέση και # αντιπροσωπεύει την ακριβή θέση των ειδικών χαρακτήρας.

Το ακόλουθο μήνυμα λάθους παρουσιάζεται όταν μια αριστερή αγκύλη με γωνία Εντοπίστηκε:
Το '<' character,="" hexadecimal="" value="" 0x3c,cannot="" be="" included="" in="" a="" name.=""></'> #, θέση #.
Σε αυτό το μήνυμα λάθους, η γραμμή # θέση και # δεν Υποδεικνύει τη θέση όπου υπάρχει αριστερή αγκύλη, αλλά όταν το δεύτερο αντιμετώπισε αριστερή αγκύλη με γωνία.

Εάν το αρχείο XML περιέχει μια δεξιά αγκύλη (&gt;), ευθεία εισαγωγικά ('') ή μια απόστροφο ('), αυτές τα χειρίζεται το XmlReader και το XmlDocument αντικείμενα επειδή απαιτείται μόνο το μεμονωμένο χαρακτήρα αντικατάστασης για Αυτοί οι χαρακτήρες.

Αντικατάσταση ειδικών χαρακτήρων

Για να αντικαταστήσετε το σύμβολο και χαρακτήρες αριστερή αγκύλη με γωνία:
  1. Δημιουργήστε το αρχείο XML.
  2. Δημιουργία της Visual Basic.ΚΑΘΑΡΉ εφαρμογή και στη συνέχεια εισαγάγετε ο κωδικός.

Δημιουργία αρχείου XML

Αντιγράψτε και επικολλήστε τον παρακάτω κώδικα στο Σημειωματάριο (Notepad) και στη συνέχεια αποθηκεύστε το το αρχείο ως 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>
				

Δημιουργία Visual Basic.NET έργου

  1. Δημιουργήστε μια νέα Visual Basic.NET Windows εφαρμογή.
  2. Χρησιμοποιήστε μια λειτουργία μεταφοράς και απόθεσης για να μετακινήσετε ένα Πλαίσιο κειμένουδύο Κουμπί στοιχεία ελέγχου, και ένα Το DataGrid.
  3. Ορισμός του Πολλών γραμμών ιδιότητα του Πλαίσιο κειμένου Για να TRUE.
  4. Εισαγάγετε τα παρακάτω πεδία ονομάτων:
    Imports System.Xml
    Imports System.IO
    Imports System.Data.SqlClient
    					
  5. Μετά την παρακάτω ενότητα
    Inherits System.Windows.Forms.Form
    Αντιγράψτε και επικολλήστε το ακόλουθο δείγμα κώδικα:
     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. Αντιγράψτε και επικολλήστε τον παρακάτω κώδικα σε το Κάντε κλικ στο κουμπί συμβάν Button1:
    Dim xmldoc As New XmlDocument()
            xmldoc = LoadXMLDoc()
            Dim nextnode As XmlNode
            nextnode = xmldoc.FirstChild.NextSibling
            TextBox1.Text = nextnode.OuterXml
    					
  7. Αντιγράψτε και επικολλήστε τον παρακάτω κώδικα σε το Κάντε κλικ στο κουμπί συμβάν 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. Αλλάξτε το όνομα του διακομιστή, το όνομα χρήστη και τον κωδικό πρόσβασης για συνδεθείτε με το διακομιστή που εκτελεί τον Microsoft SQL Server.
  9. Δημιουργήστε το έργο και στη συνέχεια εκτελέστε το.
  10. Κάντε κλικ στο κουμπί Button1.

    Τα σφάλματα που λαμβάνετε είναι συνεπής με το περιγραφή των σφαλμάτων που εξηγείται στο το "απαιτείται: ένα αρχείο XML με Ενότητα ειδικοί χαρακτήρες". Τα δεδομένα XML εμφανίζεται στην το Πλαίσιο κειμένου; το εμπορικό "και" αντικαθίσταται με
  11. Κάντε κλικ στο Button2.

    Με το Το DataGrid, Όνομα_εταιρείας έχει σύμβολο και το Πλαίσιο κειμένου Εμφανίζει τα δεδομένα XML με

Αναφορές

Για πρόσθετες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
251354 ΤΡΌΠΟΣ: Να εντοπίσετε και να αντικαταστήσετε ειδικούς χαρακτήρες σε ένα έγγραφο XML με τη Visual Basic

Ιδιότητες

Αναγν. άρθρου: 308060 - Τελευταία αναθεώρηση: Κυριακή, 29 Μαΐου 2011 - Αναθεώρηση: 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
Λέξεις-κλειδιά: 
kbgrpdsmsxml kbhowtomaster kbmsxml kbmt KB308060 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:308060

Αποστολή σχολίων

 

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