Чтение онлайн

на главную - закладки

Жанры

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

<xsl:stylesheet version="1.0" xmlns:Xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="http://wrox.com">

 <msxsl:script language="C#" implements-prefix="user">

string ShowText {

return "This came from the ShowText method!";

}

 </msxsl:script>

 <xsl:output method="xml" indent="yes"/>

 <xsl:template match="/">

<xsl:element name="books">

<xsl:apply-templates/>

</xsl:element>

 </xsl:template>

 <xsl:template match="bookstore">

<xsl:apply-templates select="book"/>

 </xsl:template>

 <xsl:template match="book">

<xsl:element name="discbook">

<xsl:element name="booktitle">

<xsl:value-of select="title"/>

</xsl:element>

<xsl:element name="showtext">

<xsl:value-of select="user:ShowText"/>

</xsl:element>

</xsl:element>

 </xsl:template>

</xsl:stylesheet>

Изменения

включают задание пространства имен сценариев, добавление кода (который скопирован из VS.NET IDE) и выполнение вызова в таблице стилей. Вывод выглядит так же, как и в предыдущем примере.

Ключевой момент, о котором необходимо помнить при выполнении преобразований, состоит в том, чтобы не забыть использовать подходящее хранилище;

XPathDocument
, если не требуется редактирование,
XmlDataDocument
, если данные получают из ADO.NET, и
XmlDocument
, если необходимо иметь возможность редактировать данные. Процесс будет таким же, несмотря ни на что.

XML и ADO.NET

XML является средством, которое связывает ADO.NET с остальным миром. ADO.NET был создан для работы внутри среды XML. XML используется для преобразования данных в и из хранилища данных в приложение или страницу Web. Так как ADO.NET использует XML в качестве транспорта, то данными можно обмениваться с приложениями и системами, которые даже не знают об ADO.NET. Пока обрабатывается XML, они могут совместно использовать данные. ADO.NET может читать документы XML, возвращаемые из этих же приложений. В связи с важностью XML для ADO.NET, существует ряд полезных свойств ADO.NET, которые позволяют чтение и запись документов XML. Пространство имен XML содержит также классы, которые могут потреблять или утилизировать реляционные данные ADO.NET.

Данные ADO.NET в документе XML

Первый пример, который будет рассмотрен, использует потоки ADO.NET

и XML для извлечения данных из базы данных
Northwind
в
DataSet
, загрузки объекта
XmlDocument
, содержащего XML, из
DataSet
, и загрузки XML в listbox аналогично тому, что делалось ранее. Чтобы выполнить несколько следующих примеров, необходимо добавить инструкции
using
:

using System.Data;

using System.Xml;

using System.Data.SqlClient;

using System.IO;

Также для примеров ADO в формы добавлены

DataGrid
, что позволит нам увидеть данные в
DataSet
из ADO.NET, так как они ограничены сеткой, а также данные из созданных документов XML, которые загружаются в
listbox
. Вот код первого примера, который можно найти в папке
ADOSample1
:

private void button1_Click(object sender, System.EventArgs e) {

 // создать множество данных DataSet

 DataSet ds=new DataSet("XMLProducts");

 // соединиться с базой данных northwind и

 //выбрать все строки из таблицы продуктов

 //убедитесь, что имя пользователя соответствует версии SqlServer

 SqlConnection conn=

new SqlConnection(@"server=GLYNNJ_CS\NetSDK;uid=sa;pwd=;database=northwind");

 SqlDataAdapter da=new SqDataAdapter("select * from products", conn);

После создания

SqlDataAdapter
,
da
и
DataSet
,
ds
создаются экземпляры объекта
MemoryStream
, объекта
StreamReader
и объекта
StreamWriter
. Объекты
StreamReader
и
StreamWriter
будут применять
MemoryStream
для перемещения XML:

 MemoryStream memStrm=new MemoryStream;

 StreamReader strmRead=new StreamReader(memStrm);

 StreamWriter strmWrite=new StreamWriter(memStrm);

Мы будем использовать

MemoryStream
, поэтому ничего на диск записываться не будет, однако мы сможем применять любые объекты на основе класса
Stream
, такие как
FileStream
. Затем мы заполним
DataSet
и свяжем его с
DataGrid
. Данные из
DataSet
будут выводиться теперь в
DataGrid
:

 da.Fill(ds, "products");

 // загрузка данных в DataGrid

 dataGrid1.DataSource=ds;

Поделиться:
Популярные книги

Темный Лекарь 5

Токсик Саша
5. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 5

Охота на разведенку

Зайцева Мария
Любовные романы:
современные любовные романы
эро литература
6.76
рейтинг книги
Охота на разведенку

Неудержимый. Книга XVI

Боярский Андрей
16. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XVI

Газлайтер. Том 18

Володин Григорий Григорьевич
18. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Газлайтер. Том 18

Ищу жену для своего мужа

Кат Зозо
Любовные романы:
любовно-фантастические романы
6.17
рейтинг книги
Ищу жену для своего мужа

На границе империй. Том 8. Часть 2

INDIGO
13. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 8. Часть 2

По воле короля

Леви Кира
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
По воле короля

Черный Маг Императора 9

Герда Александр
9. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 9

Последняя Арена 8

Греков Сергей
8. Последняя Арена
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Последняя Арена 8

Измена. Вторая жена мужа

Караева Алсу
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Вторая жена мужа

Возмездие

Злобин Михаил
4. О чем молчат могилы
Фантастика:
фэнтези
7.47
рейтинг книги
Возмездие

Выстрел на Большой Морской

Свечин Николай
4. Сыщик Его Величества
Детективы:
исторические детективы
полицейские детективы
8.64
рейтинг книги
Выстрел на Большой Морской

Ты - наша

Зайцева Мария
1. Наша
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Ты - наша

Повелитель механического легиона. Том III

Лисицин Евгений
3. Повелитель механического легиона
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Повелитель механического легиона. Том III