You are not logged in.

  • Login

1

Friday, April 3rd 2009, 10:04am

Ersetzen der Platzhalter mit richtigen Text

Hallo,
ich hab folgende Aufgabenstellung, weiß aber noch nicht wirklich wie ich das am besten angehen soll.
Ich hab in einer xml Datei verschiedene Platzhalter definiert mit $
diese will ich mit individuellen Texten je nach Bedarf füllen/ersetzen.
Kann mir jemand nen tipp geben wie ich das problem am besten angehe?

gru8 v1p0r

2

Friday, April 3rd 2009, 5:17pm

Hallo

xsl:param ist eine Variable die gesetzt werden kann

der Parser kann kann mit optionen

wie Param Nane wert mit geben wird

nach paser Komando Argumenten schauen

mache parser unterscheiden nach nummerichen und text Variablen


kleines Beispiel

Source code

1
2
3
4
5
6
7
8
9
<root>
	<inhalt>
		<Seite>A4</Seite>
		<Rand inheit="cm" ort="oben">2</Rand>
		<Rand inheit="cm" ort="unten">2</Rand>
		<Rand inheit="cm" ort="rechts">2</Rand>
		<Rand inheit="cm" ort="links">2</Rand>
	</inhalt>
</root>

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="text"/>
	<xsl:param name="Sart" select="string('A4')"/>
	<xsl:param name="Roben" select="2"/>
	<xsl:param name="Runten" select="2"/>
	<xsl:param name="Rrechts" select="2"/>
	<xsl:param name="Rlinks" select="2"/>
	<xsl:param name="Einheit" select="string('cm')"/>

	<xsl:template match="/">
		<xsl:apply-templates select="root/inhalt"/>
	</xsl:template>


	<xsl:template match="inhalt">
		<xsl:apply-templates select="Seite"/>

		<xsl:apply-templates select="Rand"/>
	</xsl:template>

	<xsl:template match="Seite">
		<xsl:value-of select="local-name()"/>
		<xsl:text> : </xsl:text>
		<xsl:value-of select="."/>
		<xsl:text> Param Sart </xsl:text>
		<xsl:value-of select="$Sart"/>
		<xsl:text>&#xA;</xsl:text>
	</xsl:template>


	<xsl:template match="Rand">
		<xsl:value-of select="local-name()"/>
		<xsl:text> </xsl:text>
		<xsl:value-of select="@ort"/>
		<xsl:text> : </xsl:text>
		<xsl:value-of select="."/>
		<xsl:value-of select="@inheit"/>
		<xsl:choose>
			<xsl:when test="./@ort='oben'">
				<xsl:text> Param Roben </xsl:text>
				<xsl:value-of select="$Roben"/>

				<xsl:value-of select="$Einheit"/>
			</xsl:when>
		</xsl:choose>
		<xsl:choose>
			<xsl:when test="./@ort='unten'">
				<xsl:text> Param Runten</xsl:text>
				<xsl:value-of select="$Runten"/>

				<xsl:value-of select="$Einheit"/>
			</xsl:when>

			<xsl:when test="./@ort='rechts'">
				<xsl:text> Param Rrechts </xsl:text>
				<xsl:value-of select="$Rrechts"/>

				<xsl:value-of select="$Einheit"/>
			</xsl:when>

			<xsl:when test="./@ort='links'">
				<xsl:text> Param Rlinks </xsl:text>
				<xsl:value-of select="$Rlinks"/>

				<xsl:value-of select="$Einheit"/>
			</xsl:when>
		</xsl:choose>
		<xsl:text>&#xA;</xsl:text>
	</xsl:template>
</xsl:stylesheet>


ergebnis

beim parser aufruf
wurden die Parameter mit übergeben


Source code

1
2
3
4
5
Seite : A4 Param Sart Legal
Rand oben : 2cm Param Roben 2inch
Rand unten : 2cm Param Runten2inch
Rand rechts : 2cm Param Rrechts 2inch
Rand links : 2cm Param Rlinks 2inch

Similar threads

Social bookmarks