Ga naar inhoud


Een (javascript) lijn diagram maken vanuit XML/XSL


hels

Aanbevolen berichten

L.S.

 

Ik wil een lijn diagram plaatsen via een XSLT conversie van een XML bestand.

Het diagram werkt; dit heb ik in HTML getest, maar vanuit XSL krijg ik het niet aan de praat. Ik kan javascript gebruiken vanuit XSLT, dus dat is niet het probleem.

 

Weet iemand een goede manier om ZONDER FLASH een lijn diagram te genereren vanuit XSLT?

 

Ik heb mijn demo (werkend vanuit html) en het (nietwerkende) XSL scripts hier geplaatst.

 

q.css

=====

Citaat:

#myCanvas {

z-index: -1;

overflow: auto;

position: relative;

border: #555 1px dashed;

background: #d66;

width: 320px;

height: 300px;

}

 

q.html (WERKEND !!!)

====================

Citaat:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

<html>

<head>

<title>Kaart</title>

<link rel='StyleSheet' type='text/css' href='q.css'></link>

</head>

<body>

 

<h3>Test grafiek</h3>

 

<div id='myCanvas'></div>

<script type='text/javascript' src='wz_jsgraphics.js'></script>

<script type='text/javascript' src='line.js'></script>

<script type='text/javascript' src='demo.js'></script>

 

</body>

</html>

 

q.xml

=====

Citaat:

<?xml version='1.0' encoding='ISO-8859-1'?>

<?xml-stylesheet type='text/xsl' href='q.xsl'?>

<data>

<Med>

<Med_ID>1</Med_ID>

<Med_Naam>John Doe</Med_Naam>

</Med>

</data>

 

q.xsl (Wat ik werkend wil krijgen)

==================================

Citaat:

<?xml version='1.0' encoding='ISO-8859-1'?>

 

<xsl:stylesheet version='1.0'

xmlns:xsl='http://www.w3.org/1999/XSL/Transform'

xmlns='http://www.w3.org/1999/xhtml'>

 

<xsl:template match='data'>

 

<html>

<head>

<title>Kaart</title>

<link type='text/css' rel='stylesheet' href='q.css'></link>

</head>

 

<body>

 

<h3>Test grafiek</h3>

 

<div id='myCanvas'>Joop</div>

<script type='text/javascript' src='wz_jsgraphics.js'></script>

<script type='text/javascript' src='line.js'></script>

<script type='text/javascript' src='demo.js'></script>

<script type='text/javascript'>alert('Hello world.');</script>

 

<xsl:value-of select="Med/Med_Naam" /><br />

</body>

</html>

 

</xsl:template>

 

</xsl:stylesheet>

 

demo.js

=======

Citaat:

var g1 = new line_graph();

var g2 = new line_graph();

 

g1.add('2007', 30);

g1.add('2008', 100);

g1.add('2009', 50);

g1.add('2012', 30);

 

g2.add('', 50);

g2.add('', 20);

g2.add('', 10);

g2.add('', 55);

 

g1.setMax(125);

g1.setColor(0);

 

g2.setMax(125);

g2.setColor(1);

 

g1.render('myCanvas', '', 250, 280 );

g2.render('myCanvas', '', 250, 280 );

 

Wat zie ik over het hoofd ?

Weet iemand een manier om een grafiek (lijn diagram) in xslt te plaatsen ???

 

Groet, Henk

"Es gibt keine verzweifelte Lagen, es gibt nur verzweifelte Menschen" - H.W. Guderian

Link naar reactie
Delen op andere sites

  • 4 weken later...

De verklaring van jouw probleem is redelijk simpel:

Jouw teken methode maakt gebruik van het Document Object Model (DOM), wat betekent dat het elementen van je document manipuleerd.

Het document van je is het XML document, wat je niet ziet.

Je kunt lijnen maken door vanuit je XSL divs te genereren bijv:

<div style="position: absolute; left: 99px; top: 85px; width: 1px; height: 9px; clip: rect(0pt, 1px, 9px, 0pt); background-color: rgb(80, 127, 175);"></div> levert je een verticale lijn op.

Op deze manier kun je horizontale en verticale lijnstukken met een breedte van 1 pixel maken.

Persoonlijk zou ik kiezen voor het met genereren van een SVG grafiek, die je embed in de html.

(Zie Google)

 

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...