xsl-list
[Top] [All Lists]

Re: [xsl] Extracting data from external file

2009-08-31 06:13:23
hi Joga,

Try this:

<xsl:template match="b">
 <xsl:variable name="a" select="substring-before(@n, '_')"/>
 <xsl:variable name="file" select="document(concat('dir/', $a,'_ext.xml'))"/>

 <xsl:variable name="v_n" select="@n"/>

  <found><xsl:value-of select="$file/xxx/x[(_at_)a = $v_n]/y"/></found>
</xsl:template>

Jingjun


2009/8/31 Jingjun Long <longjingjun(_at_)gmail(_dot_)com>:
By looking into the example data you provided, file_ext.xml is loaded
twice. Your current output is exactly reflect your logic in the XSLT
code.

There are many ways to get your expected output but what logic are you
going to put there.


2009/8/31 Joga Singh Rawat <jrawat(_at_)aptaracorp(_dot_)com>:
Hi,
I want to extract data from external file i.e. file_ext.xml but not getting
the required OUTPUT. Can anyone correct me about my mistake.

dir/file_ext.xml
<xxx>
 <x a="file_1">
   <y>first</y>
 </x>
 <x a="file _2">
   <y>second</y>
 </x>
</xxx>

b.xml
<aaa>
 <b n="file_1">
 <b n="file_2">
</aaa>

XSLT Code
<xsl:template match="b">
 <xsl:variable name="a" select="substring-before(@n, '_')"/>
 <xsl:variable name="file" select="document(concat('dir/', $a,
'_ext.xml'))"/>
  <found><xsl:value-of select="$file/xxx/x[(_at_)a = @n]/y"/></found>
</xsl:template>

OUTPUT
<found>first second</found>
<found>first second</found>

Required OUTPUT
<found>first</found>
<found>fsecond</found>

Thanks


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>