|
1. Odczytanie dokumentu XML XML, eXtensible Markup Language, jest odmianą języka, która w porównaniu do HTML nie posiada ograniczeń pod względem definiowania znaczników. W HTML znaczniki są na sztywno określone. Można określić własne znaczniki i stworzyć dokument, który służyłby do ściśle określonych celów. Do tej pory powstało wiele standardów, które bazują na XML, np:
Oto przykład dokumentu XML: Kod: xml
<?xml version="1.0"?> Jak widać XML wyglądem jest zbliżony do HTML, posiada znaczniki otwierające i zamykające elementy oraz niektóre znaczniki posiadają atrybuty. Jedyną chyba różnicą jest to, że nazwy znaczników są tworzone przez samego autora tego dokumentu. Poniżej znajduje się opis przykładu. Kod: xml
<?xml version="1.0"?> informuje przeglądarkę, że standardem bieżącego dokumentu jest XML 1.0, który w momencie pisania tego opisu był najbardziej rozpowszechnionym standardem XML. Podstawowym elementem dokumentu XML w powyższym przykładzie jest notatnik, który musi składać się ze znacznika początku i końca. Dokument bez tego podstawowego elementu, zwanego także węzłem podstawowym, jest niepoprawny. Posiada on także atrybut: Kod: xml
<notatnik wlasciciel="Autor"> Nazwa atrybutu to wlasciciel, jego wartość określa nazwę właściciela umieszczonych w dokumencie informacji. Oba elementy uzupełniają słownictwo tego dokumentu. Chociaż XML posiada inne rodzaje elementów (np. komentarze, instrukcje, itp.), tylko te dwie są niezbędne do tworzenia struktury dokumentu. Przedstawienie danych zawartych w dokumencie XML odbywa się poprzez interfejs DOM (Document Object Model). DOM jest potężnym interfejsem programistycznym, który może być użyty zarówno po stronie klienckiej jak i po stronie serwera. Poniższy przykład pokazuje jak można przetworzyć zawartość wcześniej zaprezentowanego dokumentu XML po stronie serwera używając ASP oraz DOM i wyświetlić go po stronie klienckiej w oknie przeglądarki w postaci zwykłego dokumentu HTML. Kod: asp
<% @LANGUAGE = VBScript %> Interfejs DOM jest dostępny poprzez obiekt Microsoft.XMLDOM, co ma miejsce w linii 10. Właściwość Async, która jest użyta w celu załadowania dokumentu XML, nie jest niezbędna w przypadku serwera, ale nie zaszkodzi, a nawet pomoże nie zapomnieć o jej ustawieniu w przypadku tworzenia XML po stronie klienckiej. W linii 12 metoda MapPath posiada parametr "notatnik.xml". Jest to nazwa pliku XML zawierająca wcześniej zaprezentowany przykładowy dokument XML. Pierwszy element w dokumencie XML, element podstawowy (najwyższego rzędu) jest pobierany poprzez instrukcję: Kod: asp
Set rootNode = XMLDoc.documentElement W przykładowym pliku XML jest to element notatnik, który posiada atrybut nazwany wlasciciel i jego zawartość jest znajduje się w Kod: asp
rootNode.attributes.getNamedItem("wlasciciel").Text Przed użyciem pętli pobierającej zawartość wszystkich elementów potomnych dla elementu notatnik użyta została instrukcja warunkowa If sprawdzająca obecność takich elementów w dokumencie (linia 16). Dopiero po sprawdzeniu warunku następuje wykonanie pętli For … Each pobierającej wszystkie elementy potomne względem elementu notatnik (linia 17). Kolejna pętla (linia 18), również For … Each, dotyczy pobrania elementów podrzędnych w stosunku do elementu wydarzenie. Wewnątrz pętli znajduje się warunek sprawdzający nazwę elementu podrzędnego. Odbywa się to poprzez wykorzystanie właściwości nodeName:
Zawartość elementów dokumentu XML znajduje się we właściwości Text danego elementu. Taka prezentacja zawartości dokumentu XML jest chyba najszybszą metodą. Innym sposobem jest wykorzystanie dokumentu XSL (eXtensible Stylesheet Language), który umożliwia twórcy opis wyglądu poszczególnych elementów na stronie WWW. 2. Wykorzystanie XSL XSL może być użyty w celu przekształcenia dokumentu XML na dokument HTML. XSL nie tylko umożliwia definiowanie wyglądu, ale także selekcję, dokonywanie operacji oraz sortowanie danych. XSL definiuje szablon końcowy oraz określa w jaki sposób elementy źródłowe mają być przekształcone i w jaki sposób umieszczone w dokumencie HTML. Poniżej przedstawiony został przykładowy dokument XSL. Kod: xml
<?xml version="1.0" encoding="ISO-8859-2"?> Podstawowy (nadrzędny) element dokumentu XML jest właściwie dostępny od samego początku, a jego atrybut jest umieszczony w linii 5: Kod: xml
<xsl:value-of select="@wlasciciel"/> Wartość atrybutu jest dostępna, ponieważ jego nazwa została poprzedzona znakiem @, który odróżnia nazwy atrybutów od nazw elementów. Nazwy elementów nie są poprzedzane żadnym znakiem. Należy zauważyć, że ten znacznik nie posiada znacznika końca elementu XSL. Jest to związane z tym, że każdy element XSL można zamknąć poprzez umieszczenie znaku / przed symbolem zamknięcia znacznika, tak jak jest to zrobione w linii 5. Kod: xml
<xsl:for-each select="wydarzenie" order-by="+ opis"> Ciekawym elementem tej instrukcji jest to, że istnieje możliwość (i jest to zrobione) dokonania sortowania po elementach opis. Sortowanie jest rosnące, o czym świadczy znak "+" przed nazwą elementu. Umieszczenie znaku "-" spowodowałoby sortowanie malejące. Wewnętrzny element xsl:for-each (linie 11-16) dokumentu XSL wykonuje się w przypadku elementu podrzędnego w stosunku do elementu wydarzenia jakim jest data. Pozostałe znaczniki są identyczne jak w przypadku dokumentu HTML i nie będą omawiane w tej części. Teraz kiedy stworzony został dokument XML oraz dokument XSL należałoby wykorzystać je w celu prezentacji zawartości pliku XML używając ASP. Oto przykład skryptu ASP: Kod: asp
<% @LANGUAGE = VBScript %> W liniach 10 i 11 zostały utworzone dwa obiekty XML DOM. Pierwszy ładuje notatnik, zaś drugi opis wyglądu dokumentu końcowego. Użycie opisu wyglądu z dokumentu XSL na danych zawartych w pliku XML odbywa się poprzez wywołanie metody: Kod: asp
XMLDoc.documentElement.transformNode(XSLDoc.documentElement) 3. Tworzenie dokumentu XML Istnieje możliwość stworzenia dokumentu XML poprzez wykorzystanie DOM oraz ASP. Oto przykład pokazujący w jaki sposób się to realizuje. Poniższy skrypt tworzy dokument XML zawierający tylko jeden element wydarzenie wraz z opisem i datą. Kod: asp
<% ‘ stworzenie elementu podstawowego i dołączenie go do dokumentu XML ‘ dodanie wydarzenia ‘ dodanie daty wydarzenia ‘ wysłanie dokumentu do przeglądarki Pierwszym krokiem, jest oczywiście stworzenie obiektu XML DOM, który automatycznie stworzy dokument, ale nie stworzy elementu podstawowego - należy zrobić to samemu (linia 4). Następnie zapis: Kod: asp
Set atrWlasciciel = XMLDoc.CreateAttribute("wlasciciel") tworzy atrybut dla elementu podstawowego i nadaje mu wartość "Autor". Element podstawowy jest dopiero dołączony do dokumentu XML w linii 8. Właściwość documentElement przechowuje element podstawowy. Pozostała część skryptu tworzy elementy wydarzenia i odpowiednio je podporządkowuje. Na uwagę zasługuje metoda AppendChild(), która umożliwia dodanie do dowolnego elementu jego podelementu, czyli elementu podrzędnego: Kod: asp
element.AppendChild(podelement) Tak utworzony cały dokument XML zostaje przekazany do klienta (przeglądarki) poprzez użycie komend: Kod: asp
Response.Write "<?xml version=""1.0""?>" które informują przeglądarkę o wersji dokumentu XML oraz wysyłają cały stworzony dokument XML. Stworzony dokument nie jest jeszcze tym co chciałoby się zaprezentować klientowi (użytkownikowi). Teraz należałoby stworzyć dokument HTML działający po stronie klienta. Kod: xml
<HTML> Wygląd jest bardzo podobny do przykładu (skryptu ASP) wykonywanego po stronie serwera. Przykładowe obiekty XML DOM dla plików XML i XSL są zdefiniowane w liniach 7 i 8 oraz znacznik DIV, który będzie przechowywał przekształcony dokument XML. W części skryptu ładowane są oba dokumenty XML oraz XSL, a następnie dokonuje się przekształcenie dokumentu XML, w taki sposób, jaki został opisany w XSL. Jedyną różnicą w porównaniu do skryptu wykonującego się po stronie serwera jest to, że rezultat zostanie zapisany wewnątrz znacznika DIV (instrukcja innerHTML). Autor: Krzysztof Stelmach
Skomentuj
|
|||||||||||||||||||




