Schrift
[thread]12700[/thread]

XSLT: Variable nur einmal laden

Leser: 2


<< >> 5 Einträge, 1 Seite
Norma
 2008-10-31 10:42
#115871 #115871
User since
2008-10-08
4 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich möchte mehrere XML-Dateien mit XSLT bearbeiten. Dabei wird eine Variable verwendet, in der Daten aus einer externen XML-Datei gespeichert werden. Beim Bearbeiten jeder XML-Datei wird diese Variable neu geladen. Das wirkt sich auf die Dauer der Bearbeitung aus. Gibt es eine Lösung, vielleicht mit dem Perl-Modul XML::LibXSLT, wie ich diese Variable nur einmal für alle Dateien laden kann? Hier ein Code-Beispiel für das XSLT:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:variable name="var" select="document('xxx.xml')/xxxx/xxxx"/>

<xsl:template match="tag1">
<tag1>
<xsl:attribute name="attr1">
<xsl:value-of select="$var" />
</xsl:attribute>
</tag1>
</xsl:template>

</xsl:stylesheet>


Und hier für das Perl-Programm:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use XML::LibXSLT;
use XML::LibXML;

my ($style_file, @source_files) = @ARGV;

my $parser = XML::LibXML->new();
my $xslt = XML::LibXSLT->new();
my $stylesheet = $xslt->parse_stylesheet_file($style_file);

foreach my $source_file (@source_files) {
    my $source_doc = $parser->parse_file($source_file);
    my $result = $stylesheet->transform($source_doc);
    print $stylesheet->output_string($result);
}


Ich wäre Euch für einen Tipp sehr dankbar!

LG
Norma
Norma
 2008-11-04 10:31
#115946 #115946
User since
2008-10-08
4 Artikel
BenutzerIn
[default_avatar]
Kennt denn niemand eine Lösung? :(
moritz
 2008-11-04 11:42
#115947 #115947
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Welche Variable meinst du denn, die bei jeder Datei neu geladen wird?
LanX-
 2008-11-04 12:38
#115948 #115948
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
hört sich danach an als ob die Daten aus den Files persistent im Speicher gehalten werden sollen !?!

Webanwendung : CPAN:FastCGI sonst CPAN:pperl
Norma
 2008-11-05 10:47
#115977 #115977
User since
2008-10-08
4 Artikel
BenutzerIn
[default_avatar]
Es geht um die Variable "var", in die der Inhalt einer externen Datei geladen wird.

@LanX: Ja, es geht in die Richtung. Die Dateien sollen bei der Transformation ständig mit den Daten aus der Variable angereichert werden. Das Problem ist, dass die Variable bei jeder zu bearbeitenden Datei neu mit Daten gefüllt wird. Da es sich aber um große Datenmengen handelt, dauert es ewig, bis die Bearbeitung abgeschlossen wird.
<< >> 5 Einträge, 1 Seite



View all threads created 2008-10-31 10:42.