[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

inserting structure

Subject: inserting structure
From: Manfred Staudinger <manfred.staudinger@xxxxxxxxx>
Date: Sat, 2 Jul 2005 19:54:52 +0200
inserting cdata in xsl
Hi, I'm new to both the list and xsl. I've build a test case:

<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="doc1.xsl"?>
<!DOCTYPE doc [
  <!ELEMENT doc    (index,name)>
  <!ELEMENT index  (EMPTY)>
  <!ATTLIST index
      level1 CDATA #REQUIRED>
  <!ELEMENT name  (#PCDATA)>
  <!ATTLIST name
      reg CDATA #IMPLIED>
   <!ENTITY HHStA "Wien, HHStA,">
]>
<doc>
<index level1="Pernstein, Vratislav von -" />
<index level1="Philipp II. von Spanien" />
Zeitungsbericht
1560 April 17, Toledo
   Der Herr von Pernstain ist auf 8. diz von hinnen mit seiner
gsellschafft nach Sarragossa vnd
   Barzalana verrugkht, von dannen well er vber-
fol. 394r
   farn auf Genua, Maylannd vnd durch
   Tyroll p[er] Wienn. Er hat dem Kunig ausser dess so er von Kay Mt.
vnd Khu: w:e von Behem
   wegen gethan, fur sich selbst ain schon zobln pelz vereert, Ime hat
aber der Kunig mer nit als ain
   Kettin von 2000 [] vereert, gleichwol er sich merers verseh[en]. ...
      D[er] Kunig soll den <name reg="Ragier Patie">Ragier
Patie</name> angenomen haben,
   hieuor der <name reg="Maria">Kunigin Maria</name> Camerling vnd
hofmeist[er] In Spania
   gwest, gibt im Jarlich 2000 Ducat[en] dem Tirgarten vnd annderm
nach Niderlenndisch[en]
   brauch zu wartten vnd zue zurichten.
&HHStA; Reichskanzlei, Geschriebene Zeitungen 7, fol. 393v, 394r.
</doc>

<?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="/" name="replaceLineBreaks">
<xsl:param name="string" select="." />
<xsl:param name="switch" select="0" />
<xsl:choose>
   <xsl:when test="contains($string, '&#xA;')">
      <xsl:choose>
         <xsl:when test="starts-with($string, '      ')">
            <![CDATA[</p><p>]]>
            <br />
	  <xsl:value-of select="$switch" />
            <xsl:text>6*</xsl:text>
            <xsl:value-of select="substring-before($string, '&#xA;')" />
            <xsl:call-template name="replaceLineBreaks">
               <xsl:with-param name="string"
select="substring-after($string, '&#xA;')" />
               <xsl:with-param name="switch" select="1" />
            </xsl:call-template>
         </xsl:when>
         <xsl:when test="starts-with($string, '   ')">
            <br />
	  <xsl:value-of select="$switch" />
            <xsl:text>3*</xsl:text>
            <xsl:if test="$switch=0">
	     <![CDATA[<p>]]>
            </xsl:if>
            <xsl:value-of select="substring-before($string, '&#xA;')" />
            <xsl:call-template name="replaceLineBreaks">
               <xsl:with-param name="string"
select="substring-after($string, '&#xA;')" />
               <xsl:with-param name="switch" select="1" />
            </xsl:call-template>
         </xsl:when>
         <xsl:when test="starts-with($string, 'fol.')">
            <xsl:text>[</xsl:text>
            <xsl:value-of select="substring-before($string, '&#xA;')" />
            <xsl:text>]</xsl:text>
            <xsl:call-template name="replaceLineBreaks">
               <xsl:with-param name="string"
select="substring-after($string, '&#xA;')" />
               <xsl:with-param name="switch" select="1" />
            </xsl:call-template>
         </xsl:when>
         <xsl:otherwise>
            <br />
	  <xsl:value-of select="$switch" />
            <xsl:text>x*</xsl:text>
            <xsl:if test="$switch=1">
               <![CDATA[</p>]]>
            </xsl:if>
            <xsl:value-of select="substring-before($string, '&#xA;')" />
            <xsl:call-template name="replaceLineBreaks">
               <xsl:with-param name="string"
select="substring-after($string, '&#xA;')" />
               <xsl:with-param name="switch" select="0" />
            </xsl:call-template>
         </xsl:otherwise>
      </xsl:choose>
   </xsl:when>
   <xsl:otherwise>
      <xsl:value-of select="$string" />
   </xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

wich gives the output (Firefox 1.04):

0x*
0x*
0x*Zeitungsbericht
0x*1560 April 17, Toledo
03* <p> Der Herr von Pernstain ist auf 8. diz von hinnen mit seiner
gsellschafft nach Sarragossa vnd
13* Barzalana verrugkht, von dannen well er vber- [fol. 394r]
13* farn auf Genua, Maylannd vnd durch
13* Tyroll p[er] Wienn. Er hat dem Kunig ausser dess so er von Kay Mt.
vnd Khu: w:e von Behem
13* wegen gethan, fur sich selbst ain schon zobln pelz vereert, Ime
hat aber der Kunig mer nit als ain
13* Kettin von 2000 [] vereert, gleichwol er sich merers verseh[en]. ...
</p><p>
16* D[er] Kunig soll den Ragier Patie angenomen haben,
13* hieuor der Kunigin Maria Camerling vnd hofmeist[er] In Spania
13* gwest, gibt im Jarlich 2000 Ducat[en] dem Tirgarten vnd annderm
nach Niderlenndisch[en]
13* brauch zu wartten vnd zue zurichten.
1x* </p> Wien, HHStA, Reichskanzlei, Geschriebene Zeitungen 7, fol. 393v,
394r.

I wanted to get for example <p> and other stuff inserted, but had to
cover it by cdata to become well formed. Also the recursive template
prevents me from adding html header information.
In addition to a solution I would appreciate poiters to further readings
about this...

Manfred Staudinger, Vienna, Austria

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.