Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I valori letterali XML semplificano la lettura di XML da un'origine e la trasformazione in un nuovo formato XML. È possibile sfruttare le query LINQ per recuperare il contenuto da trasformare o modificare il contenuto in un documento esistente in un nuovo formato XML.
L'esempio in questo argomento trasforma il contenuto da un documento di origine XML a HTML da visualizzare in un browser.
Annotazioni
Il computer potrebbe visualizzare nomi o percorsi diversi per alcuni degli elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. L'edizione di Visual Studio disponibile e le impostazioni usate determinano questi elementi. Per altre informazioni, vedere Personalizzazione dell'IDE.
Per trasformare un documento XML
In Visual Studio creare un nuovo progetto Visual Basic nel modello di progetto Applicazione console .
Fare doppio clic sul file Module1.vb creato nel progetto per modificare il codice Visual Basic. Aggiungere il codice seguente al
Sub Main
delModule1
modulo. Questo codice crea il documento XML di origine come XDocument oggetto .Dim catalog = <?xml version="1.0"?> <Catalog> <Book id="bk101"> <Author>Garghentini, Davide</Author> <Title>XML Developer's Guide</Title> <Price>44.95</Price> <Description> An in-depth look at creating applications with <technology>XML</technology>. For <audience>beginners</audience> or <audience>advanced</audience> developers. </Description> </Book> <Book id="bk331"> <Author>Spencer, Phil</Author> <Title>Developing Applications with Visual Basic .NET</Title> <Price>45.95</Price> <Description> Get the expert insights, practical code samples, and best practices you need to advance your expertise with <technology>Visual Basic .NET</technology>. Learn how to create faster, more reliable applications based on professional, pragmatic guidance by today's top <audience>developers</audience>. </Description> </Book> </Catalog>
Procedura: Caricare xml da un file, una stringa o un flusso.
Dopo aver creato il codice per creare il documento XML di origine, aggiungere il codice seguente per recuperare tutti gli <elementi Book> dall'oggetto e trasformarli in un documento HTML. L'elenco di <elementi Book> viene creato usando una query LINQ che restituisce una raccolta di XElement oggetti che contengono il codice HTML trasformato. È possibile utilizzare espressioni incorporate per inserire i valori del documento di origine nel nuovo formato XML.
Il documento HTML risultante viene scritto in un file usando il Save metodo .
Dim htmlOutput = <html> <body> <%= From book In catalog.<Catalog>.<Book> Select <div> <h1><%= book.<Title>.Value %></h1> <h3><%= "By " & book.<Author>.Value %></h3> <h3><%= "Price = " & book.<Price>.Value %></h3> <h2>Description</h2> <%= TransformDescription(book.<Description>(0)) %> <hr/> </div> %> </body> </html> htmlOutput.Save("BookDescription.html")
Dopo
Sub Main
,Module1
aggiungere un nuovo metodo (Sub
) per trasformare un <nodo Description> nel formato HTML specificato. Questo metodo viene chiamato dal codice nel passaggio precedente e viene usato per mantenere il formato degli <elementi Description> .Questo metodo sostituisce i sottoelementi dell'elemento <Description> con HTML. Il
ReplaceWith
metodo viene utilizzato per mantenere la posizione dei sottoelementi. Il contenuto trasformato dell'elemento <Description> è incluso in un elemento di paragrafo HTML (<p>). La Nodes proprietà viene utilizzata per recuperare il contenuto trasformato dell'elemento <Description> . In questo modo si garantisce che i sottoelementi siano inclusi nel contenuto trasformato.Aggiungere il codice seguente dopo
Sub Main
diModule1
.Public Function TransformDescription(ByVal desc As XElement) As XElement ' Replace <technology> elements with <b>. Dim content = (From element In desc...<technology>).ToList() If content.Count > 0 Then For i = 0 To content.Count - 1 content(i).ReplaceWith(<b><%= content(i).Value %></b>) Next End If ' Replace <audience> elements with <i>. content = (From element In desc...<audience>).ToList() If content.Count > 0 Then For i = 0 To content.Count - 1 content(i).ReplaceWith(<i><%= content(i).Value %></i>) Next End If ' Return the updated contents of the <Description> element. Return <p><%= desc.Nodes %></p> End Function
Salvare le modifiche.
Premere F5 per eseguire il codice. Il documento salvato risultante sarà simile al seguente:
<?xml version="1.0"?> <html> <body> <div> <h1>XML Developer's Guide</h1> <h3>By Garghentini, Davide</h3> <h3>Price = 44.95</h3> <h2>Description</h2> <p> An in-depth look at creating applications with <b>XML</b>. For <i>beginners</i> or <i>advanced</i> developers. </p> <hr /> </div> <div> <h1>Developing Applications with Visual Basic .NET</h1> <h3>By Spencer, Phil</h3> <h3>Price = 45.95</h3> <h2>Description</h2> <p> Get the expert insights, practical code samples, and best practices you need to advance your expertise with <b>Visual Basic .NET</b>. Learn how to create faster, more reliable applications based on professional, pragmatic guidance by today's top <i>developers</i>. </p> <hr /> </div> </body> </html>