Языки

» Html
» Java Script

» PHP

» Perl

» ASP

» CGI

» Xml

» Dhtml

» VBScript

» Java

» Css

Уроки

» Photoshop

» Corel Draw

» Dreamwawer

» Flash MX

Скачать

» Программы

» Книги

Шаблоны

» Сайтов

» Flash

» Скрипты

Active Server Pages

  » ASP для новичков

     » Главная страница

     » ASP для новичков

Извлечение данных из XML-файлов

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

Итак, как нам уже известно, файлы XML являются простыми текстовыми файлами, имеющими такую же структуру, как и HTML-файлы, но при этом набор используемых тегов определяет сам разработчик. Естественно, подобная структура позволяет хранить в XML-файлах не только структурированные тексты, но и информацию из баз данных. Естественно, XML никогда не сможет заменить стандартные механизмы систем управления базами данных, однако при использовании определенных выборок данных для Web эти файлы могут быть полезны. Достаточно всего лишь настроить параметры отображения XML-файлов в браузере пользователя, и можно передавать ему весь файл как есть, без дополнительной обработки.

Впрочем, иногда дополнительная обработка может понадобиться, но стоит вспомнить, что технология Microsoft .NET очень плотно связана с XML, поэтому в ней присутствуют средства достаточно прозрачной работы с XML-файлами. В рамках этого раздела мы, естественно, не сможем рассмотреть всю технологию использования XML в проектах ASP.NET, для этого пришлось бы писать отдельную книгу, но мы рассмотрим механизм использования XML-файла в качестве источника данных для таблицы, отображаемой на Web-странице.

Для начала нам придется создать простейший XML-файл, содержащий какую-либо информацию. Код этого файла приведен в листинге 4.8.

Листинг 4.8

<Document> <Row>

<Coluiml>K/Columnl>

<Column2>2</Column2>

<Column3>3</Column3>

<Column4>4</Column4>

</Row>

<Row>

<Columnl>5</Coluitml>

<Coluim2>6</Column2>

<Column3>7</Column3>

<Column4>8</Column4>

</Row>

</Document>

Как видно, структура и содержимое XML-файла максимально прозрачны. Для простоты доступа этот файл стоит разместить в том же каталоге, в котором будет функционировать создаваемое Web-приложение. Впрочем, это не критично.

Теперь перейдем к созданию самого Web-приложения. На разрабатываемой Web-странице достаточно будет разместить один компонент DataGrid. HTML-код этой Web-страницы в режиме разработки приведен в листинге 4.9.

Листинг 4.9

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForml.spx.vb" jnherits="dataxml.WebForml"%>

felDOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

< HTML>

<HEAD>

<title>

</title>

<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">

<meta name="CODE__LANGUAGE" content="Visual Basic 7.0">

<meta name="vs_defaultClientScript" content="JavaScript">

<meta name="vs_targetSchema"

Rcontent="http://schemas.microsoft.com/intellisense/ie5">

</HEAD>

<body MS_POSITIONING="GridLayout">

<form id="Forml" method="post" runat="server">

<asp:DataGrid id="DataGridl" style="Z-INDEX: 101; LEFT: ЗОрх;

POSITION: absolute;

TOP: 13px" runat="server" Width="282px"

Height="162px"x/asp:DataGrid>

</form>

</body>

</HTML>

Естественно, это не самый сложный листинг, который приходилось нам I рассматривать в этой книге. Но вот код класса, который будет считывать данные из XML-файла и помещать их в таблицу, будет несколько сложнее. Этот код приведен в листинге 4.10.

Л истинг 4.10

Public Class WebForml "i Inherits System.Web.HI. Page

Protected WithEvents DataGridl

As System.Web.UI.WebControls.DataGrid

#Region " Web Form Designer Generated Code "

'This call is required by the Web Form Designer.

<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub

Private Sub Page_Init(ByVal sender

As System.Object, ByVal

e As System.EventArgs) Handles MyBase.Init

'CODEGEN: This method call is required by the Web Form Designer

'Do not modify it using the code editor. InitializeComponent()

End Sub

#End Region

Private Sub Page_Load(ByVal sender

As System.Object, ByVal

e As System.EventArgs) Handles MyBase.Load

'Put user code to initialize the page here

Dim DS As New DataSet()

Dim FS As 10.FileStream

Dim Reader As lO.StreamReader

FS = New IO.FileStream(Server.MapPath("datal.xml"), IO.FileMode.Open, 10.FileAccess.Read)

Reader = New lO.StreamReader(FS) DS.ReadXml(Reader) FS.Close ()

Dim Source As DataView Source = New DataView(DS.Tables(0))

DataGridl.DataSource = Source DataGridl.DataBind()

End Sub

End Class

Как видно, все операции будут выполняться в обработчике загрузки таблицы. Нам потребуется один экземпляр класса DataSet, переменная fs, которая позволяет работать с файлами, и переменная Reader, предназначенная для чтения потоков информации из файла.

Файл datal.xml открывается в конструкторе объекта FileStream, причем, как легко заметить, открывается только на чтение. Затем при помощи метода Readxmi мы считываем данные из потока, связанного с XML-файлом. Этого достаточно. Теперь все данные уже находятся в экземпляре объекта DataSet. Затем, мы объявляем переменную типа DataView, которая обраща- ется к начальному элементу коллекции Tables из созданного набора данных. Как мы уже знаем, в объектах DataSet может храниться несколько таблиц сразу, но в данном случае, там точно всего одна таблица, поэтому можно смело применить начальный и единственный элемент коллекции Tables. A затем эту извлеченную таблицу мы используем в качестве источника данных для компонента DataGridi и отдаем команду на отображение полученных данных при помощи метода DataBind. В результате этих действий браузере отображается Web-страница, внешний вид которой показан на рис. 4.2.

Следует обратить внимание на то, с какой легкостью мы подключили XML-файл к таблице без какого-либо описания данных. Вся прелесть механизма JASP.NET в том, что он автоматически распознает структуру корректных XML-файлов и может отлично их обрабатывать.

Сохранить документ

Сохранить документ (.doc)

Распечатать документ

Напечатать

 

Процесс обучения asp закончен.

Надеемся, что вы добьетесь успехов в веб дизайне.

 

Изучить еще что нибудь?


Общение
» Чат

» Форум

Реклама 

Здесь может быть Ваша реклама

Поиск

» Поиск

Статистика 

Связь
» Web дизайнер

» Ваша реклама

» Отзывы

» О проекте

 



Сайт управляется системой uCoz