use strict; use warnings; use XML::LibXSLT; use XML::LibXML; my $LANG = 'en'; my $xslt = XML::LibXSLT->new(); my $source = XML::LibXML->load_xml (location => shift); my $style_doc = XML::LibXML->load_xml (string => do { local $/; <DATA> +}); my $stylesheet = $xslt->parse_stylesheet ($style_doc); my $results = $stylesheet->transform ($source, lang => "'$LANG'"); print $stylesheet->output_as_bytes ($results); $LANG = 'ru'; my $results = $stylesheet->transform ($source, lang => "'$LANG'"); print $stylesheet->output_as_bytes ($results); __DATA__ <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml"/> <xsl:param name="lang"/> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()[not(@xml:lang)] | node( +)[@xml:lang = $lang]"> </xsl:apply-templates> </xsl:copy> </xsl:template> </xsl:stylesheet>
In reply to Re: Parsing xml:lang attribute
by happy.barney
in thread Parsing xml:lang attribute
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |