Samouczek XML

Strona główna XML Wprowadzenie do XML XML Jak używać Drzewo XML Składnia XML Elementy XML Atrybuty XML Przestrzenie nazw XML Wyświetlacz XML Żądanie HTTP XML Parser XML XML DOM XML XPath XML XSLT XML XQuery XML XLink Walidator XML XML DTD Schemat XML Serwer XML Przykłady XML Quiz XML Certyfikat XML

XML AJAX

Wprowadzenie do AJAX AJAX XMLHttp Żądanie AJAX Odpowiedź AJAX Plik XML AJAX AJAX PHP ASP AJAX Baza danych AJAX Aplikacje AJAX Przykłady AJAX

XML DOM

Wprowadzenie do DOM Węzły DOM Dostęp do DOM Informacje o węźle DOM Lista węzłów DOM Przechodzenie DOM Nawigacja DOM DOM Uzyskaj wartości Zmiana węzłów DOM DOM Usuń węzły DOM Zamień węzły DOM Utwórz węzły DOM Dodaj węzły Węzły klonowania DOM Przykłady DOM

Samouczek XPath

Wprowadzenie do XPath Węzły XPath Składnia XPath Osie XPath Operatorzy XPath Przykłady XPath

Samouczek XSLT

Wprowadzenie XSLT Języki XSL Transformacja XSLT XSLT <szablon> XSLT <wartość-z> XSLT <dla każdego> XSLT <sortuj> XSLT <jeśli> XSLT <wybierz> XSLT Zastosuj XSLT na kliencie XSLT na serwerze XSLT Edytuj XML Przykłady XSLT

Samouczek XQuery

Wprowadzenie do XQuery Przykład XQuery XQuery FLWOR XQuery HTML Warunki XQuery Składnia XQuery XQuery Dodaj XQuery Wybierz Funkcje XQuery

XML DTD

Wprowadzenie do DTD Bloki konstrukcyjne DTD Elementy DTD Atrybuty DTD Elementy DTD a Attr Jednostki DTD Przykłady DTD

Schemat XSD

Wprowadzenie do XSD XSD Jak to zrobić XSD <schemat> Elementy XSD Atrybuty XSD Ograniczenia XSD

Kompleks XSD

Elementy XSD XSD Pusty Tylko elementy XSD Tylko tekst XSD Mieszane XSD Wskaźniki XSD XSD <dowolny> XSD <dowolnyAtrybut> Zastąpienie XSD Przykład XSD

Dane XSD

XSD ciąg Data XSD Numeryczne XSD XSD Różne Odniesienie XSD

Usługi internetowe

Usługi XML XML WSDL MYDŁO XML XML RDF XML RSS

Bibliografia

Typy węzłów DOM Węzeł DOM Lista węzłów DOM DOM NamedNodeMap Dokument DOM Element DOM Atrybut DOM Tekst DOM DOM CDATA Komentarz DOM DOM XMLHttpRequest Analizator DOM Elementy XSLT Funkcje XSLT/XPath

Wybór i filtrowanie XQuery


Przykładowy dokument XML

W poniższych przykładach użyjemy dokumentu „books.xml” (ten sam plik XML, co w poprzednich rozdziałach).

Wyświetl plik „books.xml” w przeglądarce .


Wybieranie i filtrowanie elementów

Jak widzieliśmy w poprzednich rozdziałach, wybieramy i filtrujemy elementy za pomocą wyrażenia Path lub wyrażenia FLWOR.

Spójrz na następujące wyrażenie FLWOR:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
  • for - (opcjonalne) wiąże zmienną z każdym elementem zwracanym przez wyrażenie in
  • niech - (opcjonalnie)
  • gdzie - (opcjonalnie) określa kryteria
  • order by - (opcjonalnie) określa porządek sortowania wyniku
  • return - określa, co zwrócić w wyniku

Klauzula za

Klauzula for wiąże zmienną z każdym elementem zwracanym przez wyrażenie in. Klauzula for powoduje iterację. W tym samym wyrażeniu FLWOR może być wiele klauzul for.

Aby zapętlić określoną liczbę razy w klauzuli for, możesz użyć słowa kluczowego to:

for $x in (1 to 5)
return <test>{$x}</test>

Wynik:

<test>1</test>
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>

Słowo kluczowe at może służyć do zliczania iteracji:

for $x at $i in doc("books.xml")/bookstore/book/title
return <book>{$i}. {data($x)}</book>

Wynik:

<book>1. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>

Jest to również dozwolone z więcej niż jednym wyrażeniem w klauzuli for. Użyj przecinka, aby oddzielić je w wyrażeniu:

for $x in (10,20), $y in (100,200)
return <test>x={$x} and y={$y}</test>

Wynik:

<test>x=10 and y=100</test>
<test>x=10 and y=200</test>
<test>x=20 and y=100</test>
<test>x=20 and y=200</test>


Klauzula niech

Klauzula let umożliwia przypisanie zmiennych i pozwala uniknąć wielokrotnego powtarzania tego samego wyrażenia. Klauzula let nie powoduje iteracji.

let $x := (1 to 5)
return <test>{$x}</test>

Wynik:

<test>1 2 3 4 5</test>

Gdzie Klauzula

Klauzula WHERE służy do określenia jednego lub więcej kryteriów dla wyniku:

where $x/price>30 and $x/price<100

Porządek według klauzuli

Klauzula order by służy do określenia kolejności sortowania wyniku. Tutaj chcemy uporządkować wynik według kategorii i tytułu:

for $x in doc("books.xml")/bookstore/book
order by $x/@category, $x/title
return $x/title

Wynik:

<title lang="en">Harry Potter</title>
<title lang="en">Everyday Italian</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>

Klauzula zwrotu

Klauzula return określa, co ma zostać zwrócone.

for $x in doc("books.xml")/bookstore/book
return $x/title

Wynik:

<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>