Jak przekazać XPath w XSL

Mam plik index.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<page>
    <pre># kod xxx
        cat /etc/fstab
    </pre>
    <file name="index.xml" sec="/page/pre"/>
</page>

jeśli plik style.xsl zawiera

<xsl:template match="file[@name and @sec]">
    <xsl:copy-of select="document(@name)/page/pre"/>
</xsl:template>

wówczas wynikowy dokument zawiera dwa razy fragment "kod xxx". Ok, tak ma być.

Pytanie: jak zamiast /page/pre przekazać ścieżkę z parametru @sec ? czyli coś w rodzaju:

<xsl:copy-of select="document(@name)@sec"/>

nie mogę znaleźć przykładu jak to przekazać.

1 rok, 10 miesięcy temu | edytowane przez: borzole 1831

  • Ciekawy problem. Pochyliłem się nad nim... i okazało się, że XSLT 1.0 nie przewiduje czegoś takiego. Okazało się jednak, że istnieją przydatne rozszerzenia:

    <xsl:stylesheet version = '1.0'
         xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
         xmlns:dyn="http://exslt.org/dynamic" extension-element-prefixes="dyn">
    <xsl:template match="/*">
      <xsl:variable name="vwhat" select="/page/file/@sec/." />
      <xsl:copy-of select="dyn:evaluate($vwhat)" />
    </xsl:template>
    </xsl:stylesheet>
    

    Podany przykład działa - wywaliłem w nim odniesienia do document(), bo mi nie działało w internetowym procesorze, gdzie się nie określa nazw plików. Ale myślę, że sobie poradzisz z poskładaniem do kupy tak jak chcesz, wiedząc jak wyciągać z atrybutów ścieżki do elementów dokumentu.

    Pewne informacje źródłowe dostępne są tu

  • Witam, jak się dzisiaj czujesz? Mam nadzieję, że wszystko jest dobrze. Nazywam się na stałym poziomie. W poszukiwaniu człowieka, który rozumie znaczenie miłości, zaufania i wiary w siebie, a nie ten, kto widzi miłość jako jedyny sposób zabawy, ale dojrzały człowiek z Nicei wizję tego, co na świecie jest wszystko o, a po przeczytaniu profilu tutaj (matchperfect) I wziął interes w ciebie, więc zarzuty odpowiedź mi w tym e-mail (constantduke10@hotmail.com. Będę bardzo szczęśliwy, aby przeczytać odpowiedzi tak, że ja wysłać moje zdjęcie dla Ciebie możemy wówczas zacząć wiedzieć więcej o sobie nawzajem. Dziękuję za przeczytanie mojego maila i być Bless.

    stałej (constantduke10@hotmail.com))

    Hello, how are you doing today? i hope all is well. My name is constant., In search of a man who understand the meaning of love as Trust and faith in each other rather than one who sees love as the only way of fun, but a matured Man with Nice Vision of what the world is all about, and after reading your profile here in(matchperfect ) I took Interest in you, so pleas reply me with this Email (constantduke10@hotmail.com. i will be very happy to read your reply so that i will send my picture to you then we can start know more about each other. Thanks for reading my mail and be Bless.

    constant (constantduke10@hotmail.com))

Zaloguj się, aby dodać swoją odpowiedź