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

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

Жанры

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;

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

Наследник павшего дома. Том II

Вайс Александр
2. Расколотый мир [Вайс]
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник павшего дома. Том II

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Наследие Маозари 4

Панежин Евгений
4. Наследие Маозари
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наследие Маозари 4

Матабар III

Клеванский Кирилл Сергеевич
3. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар III

Девятая Крепость

Катлас Эдуард
1. Акренор
Фантастика:
фэнтези
8.68
рейтинг книги
Девятая Крепость

Возвышение Меркурия. Книга 15

Кронос Александр
15. Меркурий
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 15

Наследник

Майерс Александр
3. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Наследник

Имя нам Легион. Том 5

Дорничев Дмитрий
5. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 5

Сделай это со мной снова

Рам Янка
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Сделай это со мной снова

Доктора вызывали? или Трудовые будни попаданки

Марей Соня
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Доктора вызывали? или Трудовые будни попаданки

Воевода

Ланцов Михаил Алексеевич
5. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Воевода

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

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

Ведьмак. Перекресток воронов

Сапковский Анджей
Фантастика:
фэнтези
5.00
рейтинг книги
Ведьмак. Перекресток воронов

Курсант: назад в СССР 2

Дамиров Рафаэль
2. Курсант
Фантастика:
попаданцы
альтернативная история
6.33
рейтинг книги
Курсант: назад в СССР 2