Skip to content

Instantly share code, notes, and snippets.

@jeszy75
Last active October 29, 2025 21:50
Show Gist options
  • Select an option

  • Save jeszy75/d85f4cd434e963a29c065757cad02979 to your computer and use it in GitHub Desktop.

Select an option

Save jeszy75/d85f4cd434e963a29c065757cad02979 to your computer and use it in GitHub Desktop.
XSLT 1.0 feladatok (Macbeth)

XSLT 1.0 feladatok (Macbeth)

Az alábbi feladatokban a macbeth.xml dokumentumot használjuk bemeneti dokumentumként.

1. feladat

Készítsünk XSLT stíluslapot, amely egy tetszőleges bemeneti dokumentumban az elemeket úgy nevezi át, hogy bennük a nagybetű karaktereket kisbetű karakterekre cseréli.

2. feladat

Készítsünk XSLT stíluslapot, amely a bemeneti dokumentumhoz egy olyan kimeneti dokumentumot állít elő, amely minden egyes szereplőhöz tartalmazza az alábbiakat:

  • hány felvonásban szerepel,
  • hány jelenetben szerepel,
  • hány dialógusa van (SPEECH elemek száma),
  • hány sora van (LINE elemek száma).

Több megoldást is adjunk: elsőként egy XML kimeneti dokumentumot állítsunk elő, majd egy olyan HTML oldalt, amely egy táblázatban tartalmazza a fentieket. A HTML dokumentum stilizálása történjen a bootstrap.min.css stíluslappal, amelynek használatával kapcsolatos információkat a Bootstrap dokumentációjában találunk itt.

3. feladat

Készítsünk XSLT stíluslapot, amely a bemeneti dokumentumból egy HTML oldalt állít elő, amely a színdarab teljes szövegét tartalmazza. Módosítsuk úgy a stíluslapot, hogy a jelenetekre mutató hiperlinkekből álló tartalomjegyzék is kerüljön előállításra. A HTML kimenet megjelenítéséhez használjuk a bootstrap.min.css és play.css stíluslapokat.

body {
line-height: 1.5;
}
h1, h2, h3 {
text-align: center;
}
section.scene > h3 {
border: medium solid crimson;
padding: 0.5em;
}
div.speaker {
text-transform: uppercase;
font-weight: bold;
}
.stagedir {
color: gray;
font-style: italic;
}
.stagedir::before {
content: "(";
}
.stagedir::after {
content: ")";
}
section.scene > div.stagedir {
text-align: center;
}
div.line, div.speech > div.stagedir {
margin-left: 1em;
}
div.speech, section.scene > div.stagedir {
margin-top: 1em;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment