Ich versuche zum ersten Mal xsl, und in 3 Stunden kann nicht eine einzige Zeile drucken!XSL kann Vorlagenvorlage nicht verwenden
btw. MOST einfache XML-Datei:
<?xml version="1.0" encoding="UTF-8"?>
<book>
<author>qqqqqq</author>
<title>Srwrtwt</title>
<title>yoo</title>
<price>$10.00</price>
</book>
Und eine Version von xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="author">
<html>
</html>
</xsl:template>
<xsl:template match="title">
<h1>
<xsl:apply-templates/>
</h1>
</xsl:template>
</xsl:stylesheet>
Die Ausgabe lautet:
<html></html>
<h1>Srwrtwt</h1>
<h1>yoo</h1>
$10.00
Und ich bin ok damit, aber wenn ich das ändern xsl wie folgt:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
</html>
</xsl:template>
<xsl:template match="title">
<h1>
<xsl:apply-templates/>
</h1>
</xsl:template>
</xsl:stylesheet>
Dies ist die Ausgabe, warum template match = „title“ NOW funktioniert nicht ?:
<html></html>
Die Tatsache ist, dass ich ähnliches Beispiel getan haben, um zu versuchen zu verstehen, warum dies geschieht, und in anderen Fällen funktioniert es: Beispiel:
<?xml version="1.0"?>
<page>
<title>Hello World</title>
<content>
<x>dewjnf</x>
<paragraph>
<resume>This is my first page!</resume>
</paragraph>
</content>
</page>
die xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" />
<xsl:template match="/">
<html>
<head>
<title>
<xsl:value-of select="page/title" />
</title>
<style>
h1{
color: blue;
font-style: italic;
}
</style>
</head>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="title">
<div align="center">
<h1>
<xsl:value-of select="." />
</h1>
</div>
</xsl:template>
<xsl:template match="resume">
<p>
<xsl:apply-templates />
</p>
</xsl:template>
</xsl:stylesheet>
Und der Ausgang ist genau das, was ich mit dem Dokumentvorlageanpaßschlangen Arbeits erwartet: zu m e scheint genau das gleiche wie im vorherigen Beispiel, aber mit einem anderen Verhalten.
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello World</title>
<style>
h1 {
color: blue;
font-style: italic;
}
</style>
</head>
<body>
<div align="center">
<h1>Hello World</h1>
</div>
dewjnf
<p>This is my first page!</p>
</body>
</html>
Die Frage ist, warum manchmal, wenn Spiel gibt es = „/“ die anderen Matches und ja manchmal funktioniert? Wo ist der Fehler?
Sie sollten lesen: https://www.w3.org/TR/xslt/#section-Processing-Model –