El Racó de Xavi

Reflexions i altres coses

Algú va dir...

Una cosa és claríssima: ací només podem ser llevant mirats des de la meseta, en perspectiva purament peninsular, continental. Mirats des de la mar, des de qualsevol punt del Mediterrani, som més ponent que ningú.
Joan F. Mira

Entrades recents


Categories


Núvol d'etiquetes


Arxius del bloc


Blocs que m'agraden


Publicitat

Acabe d'escoltar...

Planeta Softcatalà

Manuals d’XML i XSL

9 de desembre de 2008 @ 15:51

Avui estava intentat fer unes xicotetes transformacions a un XML que representava un model d’una llengua representat en n-grames, per tal d’eliminar algunes de de les entrades, i obtenir el resultat ordenat per la quantitat d’aparicions del n-grama en qüestió.

Ací va un exemple de l’XML:


<?xml version="1.0" encoding="UTF-8"?>
<ngrams>
<entry length="0" string="" count="278402143"></entry>
<entry length="3" string="##a" count="3725333"></entry>
<entry length="2" string="ab" count="656482"></entry>
<entry length="3" string="aab" count="3561903"></entry>
<entry length="1" string="d" count="6075086"></entry>
<entry length="3" string="#ex" count="5940835"></entry>
<entry length="3" string="ai$" count="1035105"></entry>
<ngrams>

En concret, volia eliminar els n-grames de longitud 0 (que, per cert, no haurien d’estar al model original, però això és un altre tema) i tots aquells que contenen # o $ (indicadors d’inici i final de paraula respectivament). Després, el resultat volia mostrar-lo ordenat per nombre d’aparicions (paràmetre count).

Amb aquesta fulla d’estils he aconseguit el resultat que volia.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<ngrams>
<xsl:for-each select="ngrams/entry">
<xsl:sort select="@count" data-type="number" order="descending"/>
<xsl:if test="@length != '0'">
<xsl:if test="not(contains(@string,'#')) and not(contains(@string,'$'))">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:if>
</xsl:for-each>
</ngrams>
</xsl:template>
</xsl:stylesheet>

A més, com que no me’n recordava massa de XSLT (tenia falta ja de fer memòria), he buscat alguna cosa per internet, i m’he trobat una xulla (cheatsheet en anglés) a la pàgina de Mulberry Technologies molt útil per a l’ocasió. També l’he afegida a la secció de manuals d’aquesta web.

Publicat per Xavi Ivars a Programació |

Un comentari

  •  
  • [...] Manuals de llenguatge XMLxavi.infobenissa.com/bloc/2008/manuals-xml-i-xsl/ per carmen_sereno fa pocs segons [...]

Digues la teua!









Atenció!
La moderació de comentaris està habilitada, i pot endarrerir la publicació del comentari.
No cal que l'envies més d'una vegada ;).


Sindica 'El racó de Xavi'! llicència de Creative Commons Reconeixement - Compartir-Igual

Pàgina gestionada amb Wordpress | Tema inspirat en OrangeDesign | Allotjament a Dreamhost