# XSLT-Stylesheet



## gigi99 (16. Jun 2008)

Hallo,

habe folgende XML-Datei:


```
<?xml version="1.0"?>
<people>people
  <person born="1912" died="1954">person1
    <name>name1
      <first_name>Alan</first_name>
      <last_name>Turing</last_name>
    </name>
    <profession>computer scientist</profession>
    <profession>mathematican</profession>
  </person>
  <person born="1918" died="1988">person2
    <name>name2
      <first_name>Richard</first_name>
      <middle_initial>P</middle_initial>
      <last_name>Feyman</last_name>
    </name>
    <profession>physicist</profession>
    <profession>sth. else</profession>
    <hobby>Playing the bongoes</hobby>
  </person>
</people>
```

mit einem XSLT-Stylesheet möchte folgende Ausgaben erzeugen (plain):
*person1, Alan
person2, Richard*

und mit einem anderen Stylesheet:
*Alan, person1
Richard, person2*

Es würde mir zum Grundverständnis dienen, habe nämlich schon jede Menge ausprobiert aber nie kam das gewünschte Ergebnis raus.

Vielen Dank
und Gruß


----------



## gigi99 (16. Jun 2008)

So lasse ich es übrigens immer laufen (nur zur Info):


```
import java.io.File;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

public class JAXPtest {

	public static void main(String[] args) throws TransformerException 
	{
		File xmlDatei  = new File("src/jaxp/source.xml");
		File xsltDatei = new File("src/jaxp/stylesheet.xsl");
		
		Source xmlSource  = new StreamSource(xmlDatei);
		Source xsltSource = new StreamSource(xsltDatei);
		Result ergebnis   = new StreamResult(System.out);
		
		TransformerFactory transFact = TransformerFactory.newInstance();
		
		Transformer trans = transFact.newTransformer(xsltSource);
		
		trans.transform(xmlSource, ergebnis);	
		
		
	}

}
```


----------



## gigi99 (16. Jun 2008)

Habe selbst eine Lösung gefunden:



```
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output method="text" encoding="UTF-8"/>

  <xsl:template match="people">
    <xsl:apply-templates select="person"/>
  </xsl:template>

  <xsl:template match="person">
    <xsl:value-of select="name/first_name"/><xsl:text>, </xsl:text>
    <xsl:value-of select="normalize-space(text())"/>
    <xsl:text>
</xsl:text>
  </xsl:template>

</xsl:stylesheet>
```


----------

