Rechercher : dans
Par :

[XSLT] Convertir: XHTML a RDF

Dernière réponse le 8 aoû 2008 à 01:38:11 Cadavre, le 28 jun 2008 à 00:57:10 
 Signaler ce message aux modérateurs

Bonjour,
j'aimerais savoir comment transformer un document XHTML annoté en "Dublin Core" (RDF) en utilisant XSLT. Je sais que je dois aussi utiliser Xpath, mais je sais pas comment mettre tout ca place ?

Voici ce que je veux obtenir:

<html>
<body><pre>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >

<rdf:Description rdf:about="http://test.org">
<title
xmlns="http://purl.org/dc/elements/1.1/">
le titre du doc
</title >
</rdf:Description>

</rdf:RDF>
</pre></body></html>

Et pour y arriver je dois mettre en place un fichier XHTML comme celui-ci:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
<meta name="DC.title" content="le titre de mon document" />
<meta name="DC.description" content="descrip" />
<meta name="DC.date" content="2000-11-30" />
<meta name="DC.format" content="text/html" />
<meta name="DC.language" content="fr" />
<meta name="DC.publisher" content="test" />
<title>un doc</title>
</head>
<body>
<p>Document XHTML annoté avec Dublin Core</p>
</body>
</html>

Ce fichier, grâce à du XSLT transformera mon XHTML de départ en un fichier comme celui que je veux obtenir. C'est là mon problème! Comment je fais ça !???!


Et je dois, finalement, utiliser des expressions xpath pour y arriver tel "xsl:if test="substring-before". Je ne recherche pas une réponse parfaite! Mais tout exemple concret de transformation d'un fichier xhtml vers RDF grâce à du XSLT me serait vraiment précieux!

Merci d'avance pour tout!

Configuration: Windows XP
Firefox 3.0

Meilleures réponses pour « [XSLT] Convertir: XHTML a RDF » dans :
[PDF] Convertir des PDF en images (JPEG, BMP, GIF, etc...) VoirSi vous avez des documents PDF et que vous voulez les convertir en images (JPEG, GIF, BMP, ou n'importe quel format), de manière à les exploiter, par exemple dans un logiciel d'OCR ou de retouche/création d'images : Note : Cet article présente une...
[Audio] Conversion d'un fichier au format WMA en MP3 VoirPour convertir un fichier audio au format WMA en MP3, il suffit d'utiliser un logiciel de conversion tel que l'un des suivants : Free Mp3 Wma Converter dBpower-AMP Music Converter (DMC) MediaCoder GX::Transcoder Par ailleurs, il est à...
Comment convertir un clip vidéo en .flv et inversement VoirIntroduction Voici une astuce pour vous permettre de simplement convertir un clip vidéo de (presque) n'importe quel format vers le format .flv. Cette astuce vous sera utile pour traiter de la vidéo à postériori ou pour publier votre vidéo sur...
Télécharger IPod Converter VoirDestiné aux heureux possesseurs d'iPod vidéo, le logiciel iPod Converter permet de convertir des fichiers au format MPEG, AVI, Quicktime et WMV vers les formats Mpeg4 et H264, les seuls formats supportés par l'iPod vidéo. Mise à jour effectuée le...
Transformations de XML avec XSLT VoirXSLT et XSL/FO XSL (eXtensible Stylesheet Language) possède deux composantes : XSLT, eXtensible Stylesheet Transformation XSL/FO, eXtensible Stylesheet formatting le langage de transformation des données (XSLT, eXtensible Stylesheet...
Conversions implicites de type VoirConversions implicites de type Les types intégral et virgule flottante peuvent être librement mélangés dans les affectations et les expressions. Les valeurs sont converties chaque fois qu’elles peuvent l’être, de telle sorte qu’aucune information ne...

1

Cadavre, le 30 jun 2008 à 04:37:54

Je crois que je n'es pas été assez clair. Ce que je ne sais pas c'est comment faire pour inclure du XSLT dans une page XHTML pour être en mesure d'utiliser les divers meta que je déclare entre les balises <head> et </head> ??? Une fois que je sais comment faire ça le reste devrait être assez simple. Alors si quelqu'un pourrait simplement me fournir un exemple concret d'une page xhtml contenant du xslt ce serait vraiment apprécié.

Répondre à Cadavre

2

 Cadavre, le 8 aoû 2008 à 01:38:11

Bonjour,
j'ai presque trouvé la solution à mon problème. Maintenant j'obtiens ceci:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >

<rdf:Description rdf:about="http://mondocument.org">
<title
xmlns="http://purl.org/dc/elements/1.1/">
le titre de mon document
</title >
</rdf:Description>

<rdf:Description rdf:about="http://mondocument.org">
<description
xmlns="http://purl.org/dc/elements/1.1/">
http://mondocument.org
</description >
</rdf:Description>

</rdf:RDF>

Le problème est que je veux obtenir ceci:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >

<rdf:Description rdf:about="http://mondocument.org">
<title
xmlns="http://purl.org/dc/elements/1.1/">
le titre de mon document
</title >
</rdf:Description>

</rdf:RDF>

Comme vous pouvez le voir, pour un même enregistrement j'obtiens, en quelque sorte, un doublon en affichage. Et c'est ce que je tente d'éliminer.

Voici la version de mon fichier xhtml simplifiée pour une question de clarté:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="Test.xslt"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
<meta name="DC.title" content="le titre de mon document" />
<meta name="DC.description" content="http://mondocument.org" />
<title>Un petit document</title>
</head>
<body>
<p>Test</p>
</body>
</html>

Finalement, voici mon fichier xslt:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xsl:output method="html" version="1.0" encoding="ISO-8859-1" indent="yes"/>
<xsl:template match="xhtml:link">
</xsl:template>

<xsl:template match="xhtml:link">
<html>
<body><pre>

<?xml version="1.0" encoding="ISO-8859-1" ?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >

<xsl:if test="substring-before(@rel,'.') = 'schema' ">
<xsl:for-each select="../xhtml:meta[substring-before(@name,'.') = substring-after(current()/@rel,'.')]">
<rdf:Description rdf:about="http://mondocument.org">
<<xsl:value-of select="substring-after(./@name,'.')"/>
xmlns="<xsl:value-of select="../xhtml:link[substring-after(@rel,'.')=substring-before(current()/@name,'.')]/@href"/>">
<xsl:value-of select="@content"/>
</<xsl:value-of select="substring-after(./@name,'.')"/> >
</rdf:Description>
</xsl:for-each>
</xsl:if>

</rdf:RDF>
</pre></body>
</html>

</xsl:template>
</xsl:stylesheet>

Mon problème vient du fait que je ne trouve pas comment obtenir ce que j'ai besoin sans utiliser un "xsl:for-each". Est-ce que quelqu'un aurait une suggestion? Ça me rendrait vraiment service!

Configuration: Windows XP Pro SP3
Firefox 3.0.1

Répondre à Cadavre