From 9d346db32e9481bdb9f2098eded53cce9d6267f3 Mon Sep 17 00:00:00 2001 From: Julia Poda Date: Sat, 6 Apr 2013 01:25:29 +0300 Subject: [PATCH] Xpath Homework --- xpath.1.1.xsl | 18 ++++++++++++ xpath.1.2.xsl | 18 ++++++++++++ xpath.1.3.xsl | 18 ++++++++++++ xpath.1.4.xsl | 19 ++++++++++++ xpath.1.5.xsl | 18 ++++++++++++ xpath.1.6.xsl | 18 ++++++++++++ xpath.1.7.xsl | 22 ++++++++++++++ xpath.1.8.xsl | 39 +++++++++++++++++++++++++ xpath.2.1.xsl | 19 ++++++++++++ xpath.2.2.xsl | 18 ++++++++++++ xpath.2.3.xsl | 21 +++++++++++++ xpath.2.4.xsl | 21 +++++++++++++ xpath.2.5.xsl | 27 +++++++++++++++++ xpath.3.1.xsl | 19 ++++++++++++ xpath.3.2.xsl | 19 ++++++++++++ xpath.3.4.xsl | 21 +++++++++++++ xpath.3.5.xsl | 24 +++++++++++++++ xpath3.3.xsl | 24 +++++++++++++++ xslt.1.txt | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++ xslt.2.xsl | 42 ++++++++++++++++++++++++++ 20 files changed, 506 insertions(+) create mode 100644 xpath.1.1.xsl create mode 100644 xpath.1.2.xsl create mode 100644 xpath.1.3.xsl create mode 100644 xpath.1.4.xsl create mode 100644 xpath.1.5.xsl create mode 100644 xpath.1.6.xsl create mode 100644 xpath.1.7.xsl create mode 100644 xpath.1.8.xsl create mode 100644 xpath.2.1.xsl create mode 100644 xpath.2.2.xsl create mode 100644 xpath.2.3.xsl create mode 100644 xpath.2.4.xsl create mode 100644 xpath.2.5.xsl create mode 100644 xpath.3.1.xsl create mode 100644 xpath.3.2.xsl create mode 100644 xpath.3.4.xsl create mode 100644 xpath.3.5.xsl create mode 100644 xpath3.3.xsl create mode 100644 xslt.1.txt create mode 100644 xslt.2.xsl diff --git a/xpath.1.1.xsl b/xpath.1.1.xsl new file mode 100644 index 0000000..077e626 --- /dev/null +++ b/xpath.1.1.xsl @@ -0,0 +1,18 @@ + + + + + + +

Выбрать людей, у которых есть телефон.

+ + + +
+ +

+ +

+
+ +
\ No newline at end of file diff --git a/xpath.1.2.xsl b/xpath.1.2.xsl new file mode 100644 index 0000000..d0c91cf --- /dev/null +++ b/xpath.1.2.xsl @@ -0,0 +1,18 @@ + + + + + + +

Выбрать людей, у которых есть мобильный телефон.

+ + + +
+ +

+ +

+
+ +
\ No newline at end of file diff --git a/xpath.1.3.xsl b/xpath.1.3.xsl new file mode 100644 index 0000000..1716dd5 --- /dev/null +++ b/xpath.1.3.xsl @@ -0,0 +1,18 @@ + + + + + + +

Выбрать людей, у которых есть мобильный телефон.

+ + + +
+ +

+ +

+
+ +
\ No newline at end of file diff --git a/xpath.1.4.xsl b/xpath.1.4.xsl new file mode 100644 index 0000000..c43b8b8 --- /dev/null +++ b/xpath.1.4.xsl @@ -0,0 +1,19 @@ + + + + + + +

Выбрать людей, у которых email начинается с `login@`.

+ + + +
+ + +

+ +

+
+ +
\ No newline at end of file diff --git a/xpath.1.5.xsl b/xpath.1.5.xsl new file mode 100644 index 0000000..2819486 --- /dev/null +++ b/xpath.1.5.xsl @@ -0,0 +1,18 @@ + + + + + + +

Выбрать людей, принадлежащих к группе html

+ + + +
+ +

+ +

+
+ +
\ No newline at end of file diff --git a/xpath.1.6.xsl b/xpath.1.6.xsl new file mode 100644 index 0000000..f05a380 --- /dev/null +++ b/xpath.1.6.xsl @@ -0,0 +1,18 @@ + + + + + + +

Выбрать людей, у которых "длинный" логин (длиннее трех символов)

+ + + +
+ +

+ +

+
+ +
\ No newline at end of file diff --git a/xpath.1.7.xsl b/xpath.1.7.xsl new file mode 100644 index 0000000..6ddbb1a --- /dev/null +++ b/xpath.1.7.xsl @@ -0,0 +1,22 @@ + + + + + + +

Выбрать для каждого человека по одному его контакту - + мобильный телефон, рабочий телефон или email (что-нибудь одно, все равно что).

+ + + +
+ + + + + + +
+
+ +
\ No newline at end of file diff --git a/xpath.1.8.xsl b/xpath.1.8.xsl new file mode 100644 index 0000000..2bf27c0 --- /dev/null +++ b/xpath.1.8.xsl @@ -0,0 +1,39 @@ + + + + + + +

Выбрать для каждого контакта его рабочий телефон, если нет рабочего, то мобильный, + если нет никакого телефона, то email.

+ + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/xpath.2.1.xsl b/xpath.2.1.xsl new file mode 100644 index 0000000..2eeca6a --- /dev/null +++ b/xpath.2.1.xsl @@ -0,0 +1,19 @@ + + + + + + +

Выбрать все ноды, "глубина залегания" которых является четным числом + (для корневого элемента "глубина" равно 0.

+ + + +
+ +

+ +

+
+ +
\ No newline at end of file diff --git a/xpath.2.2.xsl b/xpath.2.2.xsl new file mode 100644 index 0000000..0f82cbd --- /dev/null +++ b/xpath.2.2.xsl @@ -0,0 +1,18 @@ + + + + + + +

Выбрать все ноды, у которых есть "старший брат" и "младший брат".

+ + + +
+ +

+ +

+
+ +
\ No newline at end of file diff --git a/xpath.2.3.xsl b/xpath.2.3.xsl new file mode 100644 index 0000000..404e51d --- /dev/null +++ b/xpath.2.3.xsl @@ -0,0 +1,21 @@ + + + + + + +

Выбрать все ноды, у "деда" которых ровно 6 потомков.

+ + + + +
+ + + +

+ +

+
+ +
\ No newline at end of file diff --git a/xpath.2.4.xsl b/xpath.2.4.xsl new file mode 100644 index 0000000..554b771 --- /dev/null +++ b/xpath.2.4.xsl @@ -0,0 +1,21 @@ + + + + + + +

Выбрать все ноды, у которых есть предок и потомок с одинаковым классом.

+ + + + +
+ + + +

+ +

+
+ +
\ No newline at end of file diff --git a/xpath.2.5.xsl b/xpath.2.5.xsl new file mode 100644 index 0000000..f2e2232 --- /dev/null +++ b/xpath.2.5.xsl @@ -0,0 +1,27 @@ + + + + + + +

Вычислить максимальное и минимальное значение среди всех 'item' ов.

+ + + + +

Max:

+ +
+ +

Min:

+ +
+ +
+ + +
+ + + +
\ No newline at end of file diff --git a/xpath.3.1.xsl b/xpath.3.1.xsl new file mode 100644 index 0000000..26cfe1c --- /dev/null +++ b/xpath.3.1.xsl @@ -0,0 +1,19 @@ + + + + + + +

Выбрать `item`'ы, у которых `value` совпадает + с порядковым номером в списке, умноженным на 10.

+ + + +
+ +

+ +

+
+ +
\ No newline at end of file diff --git a/xpath.3.2.xsl b/xpath.3.2.xsl new file mode 100644 index 0000000..6166824 --- /dev/null +++ b/xpath.3.2.xsl @@ -0,0 +1,19 @@ + + + + + + +

Выбрать `item`'ы, у которых `value` больше, чем у + следующего за ним `item`'а.

+ + + +
+ +

+ +

+
+ +
\ No newline at end of file diff --git a/xpath.3.4.xsl b/xpath.3.4.xsl new file mode 100644 index 0000000..2b8f6c9 --- /dev/null +++ b/xpath.3.4.xsl @@ -0,0 +1,21 @@ + + + + + + +

Выбрать ноды, являющиеся и "хорошими", и "плохими".

+ + + + +
+ + + +

+ +
+ + +
\ No newline at end of file diff --git a/xpath.3.5.xsl b/xpath.3.5.xsl new file mode 100644 index 0000000..5ec8d07 --- /dev/null +++ b/xpath.3.5.xsl @@ -0,0 +1,24 @@ + + + + + + +

Выбрать все ноды, не связанные с "плохими" нодами.

+ + + + + + +
+ + + +

+ +
+ + + +
\ No newline at end of file diff --git a/xpath3.3.xsl b/xpath3.3.xsl new file mode 100644 index 0000000..e8cba39 --- /dev/null +++ b/xpath3.3.xsl @@ -0,0 +1,24 @@ + + + + + + + +

Выбрать все "хорошие" ноды.

+ + + + + + + +
+ + + +

+ +
+ +
\ No newline at end of file diff --git a/xslt.1.txt b/xslt.1.txt new file mode 100644 index 0000000..d24c46c --- /dev/null +++ b/xslt.1.txt @@ -0,0 +1,81 @@ +### xslt.1 + +Есть xml: + + + First + Second + Third + Last + + +И есть xsl: + + + + + + + + 1. + + + + + 2. + + + + + 3. + + + + + 4. + + + + + 5. + + + + + 6. + + + + + 7. + + + + + 8. + + + + + 9. + + + + + 10. + + + + + 11. + + + +Спрашивается, что будет выведено при наложении одного на другое. Пробуем решить задачу устно, а не исполняем код. +Результаты записываем в виде последовательности чисел (номара шаблонов внутри ``). + + +Ответ: 5 6 для первого элемента —2, затем для третьего — 4 3 7 8 11 и для 4-го 11 diff --git a/xslt.2.xsl b/xslt.2.xsl new file mode 100644 index 0000000..b6e8065 --- /dev/null +++ b/xslt.2.xsl @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file