Bonjour,

j'utilise Xalan-c pour transformer la sortie XML de nmap -sn -PR -X - 192.168.1.0/24 avec cette feuille de style XSLT, constituée de ce que j'ai trouvé sur le net (#laCréature ), parce que je ne pratique pas XSL tous les jours.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.1"?>
 
<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:foo="http://example.com/foo">
 
    <xsl:output method="text" encoding="utf-8"/>
 
    <xsl:variable name="spaces" select="'                                            '" />
 
<xsl:function name="foo:Fonc">
    <xsl:param name="prm" />
    <xsl:value-of select="substring( concat($prm, $spaces), 1 , 18)"/>
</xsl:function>
 
    <xsl:template match="nmaprun">
        <xsl:apply-templates select="host">
            <xsl:sort select="concat(address/@addrtype,address/@addr)" order="ascending" />
        </xsl:apply-templates>
    </xsl:template>
 
    <xsl:template match="host">
        <xsl:value-of select="foo:Fonc(hostnames/hostname/@name)"/>
<!--ça, "ça marche"        <xsl:value-of select="substring( concat(hostnames/hostname/@name, $spaces), 1 , 18)"/>-->
    </xsl:template>
 
</xsl:stylesheet>
sans l'appel à la fonction, le code fonctionne.
avec cet appel, la sortie est Erreur de segmentation (core dumped).

sauriez-vous me montrer et/ou m'expliquer mon erreur ?