Návod: Ladění šablony stylů XSLT
Kroky v tomto názorném postupu ukazují, jak používat ladicí program XSLT. Mezi kroky patří zobrazení proměnných, nastavení zarážek a procházení kódu. Ladicí program umožňuje spustit kód po jednom řádku.
Pokud se chcete připravit na tento názorný postup, nejprve zkopírujte dva ukázkové soubory do místního počítače. Jedna je šablona stylů a jeden je soubor XML, který použijeme jako vstup do šablony stylů. V tomto názorném postupu najde šablona stylů všechny knihy, jejichž náklady jsou pod průměrnou cenou knihy.
Poznámka:
Ladicí program XSLT je k dispozici pouze v edicích Professional a Enterprise sady Visual Studio.
Spuštění ladění
V nabídce Soubor zvolte Otevřít>soubor.
Vyhledejte níže uvedený soubor.xsl a zvolte Otevřít.
Šablona stylů se otevře v editoru XML.
Klikněte na tlačítko procházet (...) v poli Vstup v okně vlastností dokumentu. (Pokud Okno Vlastnosti není viditelné, klikněte pravým tlačítkem na libovolné místo v otevřeném souboru v editoru a potom zvolte Vlastnosti.)
Vyhledejte soubor books.xml a pak zvolte Otevřít.
Tím se nastaví zdrojový soubor dokumentu, který se používá pro transformaci XSLT.
Nastavte zarážku na řádku 12 pod průměrem.xsl. Můžete to udělat jedním z několika způsobů:
Klikněte na okraj editoru na řádku 12.
Klikněte na libovolné místo na řádku 12 a stiskněte klávesu F9.
Klikněte pravým tlačítkem myši na
xsl:if
počáteční značku a potom zvolte Zarážku Vložit zarážku>.
Na řádku nabídek zvolte Spustit ladění XSLT XML>(nebo stiskněte klávesu Alt+F5).
Spustí se proces ladění.
V editoru se ladicí program umístí na
xsl:if
prvek šablony stylů. V editoru se otevře jiný soubor s názvem below-average.xml . Toto je výstupní soubor, který se vyplní při zpracování každého uzlu ve vstupním souboru books.xml .Okna Automatické hodnoty, Místní hodnoty a Kukátko 1 se zobrazí v dolní části okna sady Visual Studio. V okně Místní hodnoty se zobrazí všechny místní proměnné a jejich aktuální hodnoty. To zahrnuje proměnné definované v šabloně stylů a také proměnné, které ladicí program používá ke sledování uzlů, které jsou aktuálně v kontextu.
Kukátko – okno
Do okna Kukátko 1 přidáme dvě proměnné, abychom mohli zkoumat jejich hodnoty při zpracování vstupního souboru. (Můžete také použít Okno Místní hodnoty pro zkoumání hodnot, pokud už jsou proměnné, které chcete sledovat,)
V nabídce Ladění zvolte Windows>Watch>1.
Okno Kukátko 1 se zobrazí.
Zadejte
$bookAverage
pole Název a stiskněte Enter.Hodnota
$bookAverage
proměnné se zobrazí v poli Hodnota .Na dalším řádku zadejte
self::node()
pole Název a stiskněte Enter.self::node()
je výraz XPath, který se vyhodnotí jako aktuální kontextový uzel. Hodnota výrazuself::node()
XPath je první uzel knihy. Při procházení transformace se tato změna změní.self::node()
Rozbalte uzel a pak rozbalte uzel, který máprice
hodnotu .Můžete zobrazit hodnotu ceny knihy pro aktuální uzel knihy a porovnat ji s
$bookAverage
hodnotou. Vzhledem k tomu, že cena knihy je nižší než průměr,xsl:if
podmínka by měla být úspěšná, když budete pokračovat v procesu ladění.
Projděte si kód.
Pokračujte stisknutím F5.
Vzhledem k tomu, že první uzel knihy splnil podmínku
xsl:if
, přidá se uzel knihy do výstupního souboru pod průměrem.xml . Ladicí program se bude dál spouštět, dokud se znovu nenasadí naxsl:if
prvek v šabloně stylů. Ladicí program je nyní umístěn na druhém uzlu knihy v souboru books.xml .V okně Kukátko 1 se
self::node()
hodnota změní na druhý uzel knihy. Prozkoumáním hodnoty prvku ceny můžete určit, že cena je vyšší než průměr, a protoxsl:if
by podmínka měla selhat.Pokračujte stisknutím F5.
Vzhledem k tomu, že druhý uzel knihy nesplňuje podmínku
xsl:if
, uzel knihy se nepřidá do výstupního souboru pod průměrem.xml . Ladicí program se bude dál spouštět, dokud se znovu nenasadí naxsl:if
prvek v šabloně stylů. Ladicí program je nyní umístěn na třetímbook
uzlu v souboru books.xml .V okně Kukátko 1 se
self::node()
hodnota změní na třetí uzel knihy. Prozkoumáním hodnotyprice
prvku můžete určit, že cena je nižší než průměr. Podmínkaxsl:if
by měla být úspěšná.Pokračujte stisknutím F5.
Vzhledem k tomu, že podmínka
xsl:if
byla splněna, třetí kniha se přidá do výstupního souboru pod průměrem.xml . Všechny knihy v dokumentu XML byly zpracovány a ladicí program se zastaví.
Vzorové soubory
Následující dva soubory se používají v návodu.
below-average.xsl
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8"/>
<xsl:template match="/">
<xsl:variable name="bookCount" select="count(/bookstore/book)"/>
<xsl:variable name="bookTotal" select="sum(/bookstore/book/price)"/>
<xsl:variable name="bookAverage" select="$bookTotal div $bookCount"/>
<books>
<!--Books That Cost Below Average-->
<xsl:for-each select="/bookstore/book">
<xsl:if test="price < $bookAverage">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:for-each>
</books>
</xsl:template>
</xsl:stylesheet>
Books.xml
<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>