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

RE: inserting structure

Subject: RE: inserting structure
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sat, 2 Jul 2005 19:05:03 +0100
xsl value of cdata firefox
Oddly, your title says it all: you need to insert structure, but instead you
are trying to insert characters strings like "</p>" and "<p>". XSLT takes a
tree as input and produces a tree as output; to produce element nodes in the
result tree you need to use the XSLT instructions that create element nodes,
specifically xsl:element, xsl:copy, or literal results elements such as
<p/>.

I'm sorry, but I don't have time this evening to show you a solution to this
problem.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Manfred Staudinger [mailto:manfred.staudinger@xxxxxxxxx] 
> Sent: 02 July 2005 18:55
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject:  inserting structure
> 
> 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.