Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
XML-Literale erleichtern das Lesen von XML aus einer Quelle und die Transformation in ein neues XML-Format. Sie können LINQ-Abfragen nutzen, um den Inhalt abzurufen, den Sie transformieren möchten, oder Inhalte in einem vorhandenen Dokument in ein neues XML-Format zu ändern.
Im Beispiel in diesem Thema werden Inhalte aus einem XML-Quelldokument in HTML transformiert, die in einem Browser angezeigt werden sollen.
Hinweis
Auf Ihrem Computer werden möglicherweise unterschiedliche Namen oder Speicherorte für einige der Visual Studio-Benutzeroberflächenelemente in den folgenden Anweisungen angezeigt. Die Visual Studio-Edition, über die Sie verfügen, und die Einstellungen, die Sie verwenden, bestimmen diese Elemente. Weitere Informationen finden Sie unter Personalisierung der IDE.
So transformieren Sie ein XML-Dokument
Erstellen Sie in Visual Studio ein neues Visual Basic-Projekt in der Projektvorlage "Konsolenanwendung" .
Doppelklicken Sie auf die im Projekt erstellte Module1.vb Datei, um den Visual Basic-Code zu ändern. Fügen Sie den folgenden Code in die
Sub MaindesModule1Moduls ein. Dieser Code erstellt das XML-Quelldokument als XDocument Objekt.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>Vorgehensweise: Laden von XML aus einer Datei, einer Zeichenfolge oder einem Stream.
Fügen Sie nach dem Code zum Erstellen des XML-Quelldokuments den folgenden Code hinzu, um alle
<Book>Elemente aus dem Objekt abzurufen und in ein HTML-Dokument zu transformieren. Die Liste der<Book>Elemente wird mithilfe einer LINQ-Abfrage erstellt, die eine Auflistung von XElement Objekten zurückgibt, die den transformierten HTML-Code enthalten. Sie können eingebettete Ausdrücke verwenden, um die Werte aus dem Quelldokument im neuen XML-Format zu platzieren.Das resultierende HTML-Dokument wird mithilfe der Save Methode in eine Datei geschrieben.
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")Fügen Sie nach
Sub MainvonModule1eine neue Methode (Sub) hinzu, um einen<Description>-Knoten in das angegebene HTML-Format zu transformieren. Diese Methode wird vom Code im vorherigen Schritt aufgerufen und wird verwendet, um das Format der<Description>Elemente beizubehalten.Diese Methode ersetzt Unterelemente des
<Description>Elements durch HTML. DieReplaceWithMethode wird verwendet, um die Position der Unterelemente beizubehalten. Der transformierte Inhalt des<Description>Elements ist in einem HTML-Absatzelement (<p>) enthalten. Die Nodes Eigenschaft wird verwendet, um den transformierten Inhalt des<Description>Elements abzurufen. Dadurch wird sichergestellt, dass Teilelemente im transformierten Inhalt enthalten sind.Fügen Sie den folgenden Code nach
Sub MainvonModule1hinzu.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 FunctionSpeichern Sie Ihre Änderungen.
Drücken Sie F5, um den Code auszuführen. Das resultierende gespeicherte Dokument sieht wie folgt aus:
<?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>