Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

xml tech : Technologies XML

[xml-tech] Re: Xpath & Xquery

[xml-tech] Re: Xpath & Xquery

Auteur: Cyril JANDIA <cjandia@wanadoo.fr>
Date: 22/04/2003 - 08:05

Bonjour,

> -----Original Message-----
> From: CANDAT Jerome [mailto:jerome.candat@c-s.fr]
> Sent: jeudi 17 avril 2003 15:55
> To: xml-tech@xmlfr.org
> Subject: [xml-tech] Xpath & Xquery
>
> Bonjour,
>
> Est il possible d'utiliser des expressions régulières lorsque l'on
> chercher
> des éléments avec XPath?

"Directement", non: comprendre que ni [XSLT], ni [XPath] (1.0) ne le prévoient dans leurs modèles de sélection/syntaxe d'expressions; mais, selon le processeur XSLT/XPath que vous utilisez, vous pourrez peut-être avoir recours à ce que XSLT appelle des "[fonctions d'extension]" -- un bon petit (*) exemple valant mieux qu'un long discours, voici ce que l'on peut ainsi faire avec l'implémentation [MSXML3,4,XML/XSL.NET] -- ainsi, il ne répond pas tout à fait à votre question (qui porte spécifiquement sur XPath) mais montre comment son "allié" XSLT peut rendre cela possible avec certains processeurs :

-- texte.xml
<?xml version="1.0" encoding="iso-8859-1" ?>

<texte>
<p><date>April 22, 2003</date></p>
<p>Hello, I was born on... Well, oK, let's do it in french, rather :</p>
<p>Je suis né le <date>10 mai 1970</date>.</p>
<p>Sur moi? Bof... pas grand-chose à raconter, ma foi.</p>
<p>Par contre, le <date>10/02/1998</date> fut un grand jour à mon avis : la naissance (officielle) de ce cher XML bien sûr!</p>
<p>Sans oublier le <date>16 novembre... 1999</date> : celle de XSLT/XPath !</p>
</texte>

-- quels-formats-de-dates.xsl
<?xml version="1.0" encoding="iso-8859-1" ?>

<xsl:transform
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  xmlns:dtf="votre-namespace-ici"
  version="1.0">

<msxsl:script language="JScript" implements-prefix="dtf"><![CDATA[
function /*Boolean*/ dateFormatOf(/*String*/ aDate)
{
  var result = "inconnu";
  var frenchDateNaiveRegex = /[0-9][0-9] [a-zA-Z]+ [0-9]+/;
  var englishDateNaiveRegex = /[a-zA-Z]+ [0-9][0-9], [0-9]+/;
  var numericDateNaiveRegex = /[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9][0-9][0-9]/;
  if(frenchDateNaiveRegex.test(aDate))
    result = "francais";
  else if(englishDateNaiveRegex.test(aDate))
    result = "anglais";
  else if(numericDateNaiveRegex.test(aDate))
    result = "numerique";
  return result;
}
]]></msxsl:script>

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

<xsl:template match="texte">
<html>
<head>
<title>Reconnaitre des formats de dates...</title>
</head>
<body>
<h1>Reconnaitre des formats de dates...</h1>
<xsl:apply-templates />
</body>
</html>
</xsl:template>

<xsl:template match="date">
<xsl:value-of select="." /> (format de date "<xsl:value-of select="dtf:dateFormatOf(string(.))" />")
</xsl:template>

<xsl:template match="p">
<xsl:copy><xsl:apply-templates /></xsl:copy>
</xsl:template>

</xsl:transform>

Ce qui nous donne :
"Reconnaitre des formats de dates...

April 22, 2003 (format de date "anglais")

Hello, I was born on... Well, oK, let's do it in french, rather :

Je suis né le 10 mai 1970 (format de date "francais") .

Sur moi? Bof... pas grand-chose à raconter, ma foi.

Par contre, le 10/02/1998 (format de date "numerique") fut un grand jour à mon avis : la naissance (officielle) de ce cher XML bien sûr!

Sans oublier le 16 novembre... 1999 (format de date "inconnu") : celle de XSLT/XPath !"

(*) (... qui m'a tout de même pris un bon 1/4 d'heure à bricoler; bah, quand c'est pour la liste... "la bonne cause" :)
 
[XSLT] -- modèles de sélection (de nœuds)
* http://www.w3.org/TR/xslt#patterns

[XPath] -- syntaxe d'expressions
* http://www.w3.org/TR/xpath#section-Expressions

[fonctions d'extension] (en XSLT)
* http://www.w3.org/TR/xslt#section-Extension-Functions

[MSXML3,4,XML/XSL.NET]
* http://msdn.microsoft.com/library/en-us/xmlsdk30/htm/xmmscxmloverview.asp
* http://msdn.microsoft.com/library/en-us/xmlsdk/htm/sdk_intro_6g53.asp
* http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemXmlXsl.asp

> La même chose avec XQuery?

Je ne sais pas.

Bien à vous,
Cyril
> Merci d'avance,
> Jérôme.
> [...]

--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de 
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant 
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Tue Apr 22 10:06:01 2003

Archive générée par hypermail 2.1.8 le 16/02/2007 - 11:12 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement