XSLT-Stylesheet

Status
Nicht offen für weitere Antworten.

gigi99

Mitglied
Hallo,

habe folgende XML-Datei:

Code:
<?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ß
 
So lasse ich es übrigens immer laufen (nur zur Info):

Code:
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);	
		
		
	}

}
 
Habe selbst eine Lösung gefunden:


Code:
<?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>
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben