Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Xml-литералы упрощают чтение XML из одного источника и преобразуют его в новый формат XML. Вы можете воспользоваться преимуществами запросов LINQ для получения содержимого для преобразования или изменения содержимого в существующем документе в новом формате XML.
Пример в этом разделе преобразует содержимое из xml-исходного документа в HTML для просмотра в браузере.
Замечание
На компьютере могут отображаться различные имена или расположения для некоторых элементов пользовательского интерфейса Visual Studio в следующих инструкциях. Выпуск Visual Studio, который у вас есть, и параметры, которые вы используете, определяют эти элементы. Дополнительные сведения см. в разделе Персонализация интегрированной среды разработки.
Преобразование XML-документа
В Visual Studio создайте проект Visual Basic в шаблоне проекта консольного приложения .
Дважды щелкните файл Module1.vb, созданный в проекте, чтобы изменить код Visual Basic. Добавьте следующий код в модуль
Sub MainModule1. Этот код создает исходный XDocument XML-документ в качестве объекта.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>Практическое руководство. Загрузка XML из файла, строки или потока.
После создания исходного XML-документа добавьте следующий код, чтобы получить все
<Book>элементы из объекта и преобразовать их в HTML-документ. Список<Book>элементов создается с помощью запроса LINQ, который возвращает коллекцию XElement объектов, содержащих преобразованный HTML. Внедренные выражения можно использовать для добавления значений из исходного документа в новый формат XML.Полученный HTML-документ записывается в файл с помощью Save метода.
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")Sub MainModule1после добавьте новый метод (Sub) для преобразования узла<Description>в указанный HTML формат. Этот метод вызывается кодом на предыдущем шаге и используется для сохранения формата<Description>элементов.Этот метод заменяет подэлементы элемента
<Description>на HTML. МетодReplaceWithиспользуется для сохранения расположения подэлементов. Преобразованное содержимое<Description>элемента включается в элемент HTML-абзаца (<p>). Свойство Nodes используется для получения преобразованного содержимого<Description>элемента. Это гарантирует, что вложенные элементы включены в преобразованное содержимое.Добавьте следующий код после
Sub MainэлементаModule1.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Сохраните ваши изменения.
Нажмите клавишу F5, чтобы запустить код. Полученный сохраненный документ будет выглядеть следующим образом:
<?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>