xsl-list
[Top] [All Lists]

RE: [xsl] is there a way to extract the text from a tag?

2009-04-16 19:27:40
Use the function local-name, for example <xsl:value-of
select="local-name(.)"/>

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

-----Original Message-----
From: Catherine Winston [mailto:cwinston(_at_)amherst(_dot_)edu] 
Sent: 16 April 2009 20:04
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] is there a way to extract the text from a tag?

My overall question: Is there a way to extract CREATOR from 
the <dc:creator> tag, using xsl?

I am trying to produce a csv document from an existing xml 
file (Sample
1 below); using my xsl (Sample 2 below) I have been able to 
display the information as a csv file (Sample 3 below), but 
now I am noticing that I do not have the first line of 
information that I need (the field names)
- and that that information is living within the tags of the xml file.

Sample 1 (from my xml file):
<?xml version="1.0" 
encoding="UTF=16"?><digital_entity><pid>261315</pid>
      <record xmlns=.................>
      <dc:title>Olymic Zone</dc:title>
      <dc:title>exterior; The Athlete (life-size; high relief 
in concrete and stone); outside Stadium</dc:title>
      <dc:title></dc:title>
      <dc:creator>Gregotti, Vittorio</dc:creator>
      <dc:creator>birth: 1927</dc:creator>
      .............

Sample 2 (from my xsl file):
<?xml verison="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:..................>
      <xsl:output method="text" encoding="UTF-8" indent="no" />
      <xsl:template match="/">
              <record>
                      <pid>
                              <text>"</text><xsl:value-of
select="//pid"/><text>","</text>
                      </pid>
                      <xsl:for-each select="//dc:title">
                              <dc:title>
                                      <xsl:value-of
select="."/><text>","</text>
                              </dc:title>
                      </xsl:for-each>
                      <xsl:for-each select="//dc:creator">
                              <dc:creator>
                                      <xsl:value-of
select="."/><text>","</text>
                              </xsl:for-each>
                              ..................

Sample 3 (from my csv file): (this is the very beginning of 
the first line of text within my csv file) "261315","Olympic 
Zone","exterior; The Athelete (life-size; high relief in 
concrete and stone); outside Stadium","","Gregotti, 
Vittorio","birth:1927",....................

I have now fathomed that I need to have - 
pid,title,title,title,creator,creator,........... as my first 
line of text.

Another 'problem' is that each record that I am going to be 
working with will not have the same tags or the same number 
of the same tags (e.g.
one record may have three <dc:creator> tags but another may 
have only one <dc:creator> tag, or none at all) - so if I 
could extract the 'text'
from the tags themselves in the process of creating each csv 
file - that would solve my problem.

Any help would be greatly appreciated!
Katie

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>