xsl-list
[Top] [All Lists]

Re: [xsl] collection is not working

2018-04-02 14:39:45
I think you have your parameter and use of the collection function backwards.

Is ARB a folder name that contains the 100 XML files? If so, you want to define 
your parameter (using the collection function) as:

    <xsl:param name="DocumentsURI" 
select="'collection(file:/C:/Users/rahul/Downloads/ARB/ARB/?select=*.xml)"/>

Then, the for the  for-each is the parameter $DocumentsURI



From: Rahul Singh rahulsinghindia15(_at_)gmail(_dot_)com 
[mailto:xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com]
Sent: Monday, April 02, 2018 12:40 PM
To: XSL-List: The Open Forum on XSL; 
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] collection is not working

*** WARNING ***
EXTERNAL EMAIL -- This message originates from outside our organization.

Hi,

I have 100 xml file which contains xml data with schemalocation namespace in 
root element, i have written xslt to merge file name with schema name in one 
file but i am not able to generate my output :

Input:
aa.xml
<?xml version="1.0" encoding="UTF-8"?>
<article xsi:noSchemaLocation="aa.xsd">
            <name>aaas</name>
</article>


bb.xml
<?xml version="1.0" encoding="UTF-8"?>
<article xsi:noSchemaLocation="bb.xsd">
            <name>ars</name>
</article>


cc.xml
<?xml version="1.0" encoding="UTF-8"?>
<article> xsi:noSchemaLocation="cc.xsd"
            <name>tytu</name>
</article>


Expected output:

Filename  Schema name
aa.xml      aa.xsd
bb.xml      bb.xsd
cc.xml      cc.xsd


code:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
xmlns:fo="http://www.w3.org/1999/XSL/Format"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:fn="http://www.w3.org/2005/xpath-functions";>
    <xsl:output method="xml" indent="yes"/>
    <xsl:strip-space elements="*"/>
    <xsl:param name="DocumentsURI" 
select="'file:/C:/Users/rahul/Downloads/ARB/ARB'"/>
    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="/">
        <!--Generating Result Docuemnt-->
        <xsl:result-document href="Merged.xml" method="xml" indent="yes">
            <Articles>
                <xsl:for-each 
select="collection(concat($DocumentsURI,'?select=*.xml;recurse=yes;on-error=ignore'))">
                    <xsl:apply-templates select="/article"/>
                </xsl:for-each>
            </Articles>
        </xsl:result-document>
    </xsl:template>
</xsl:stylesheet>
XSL-List info and archive<http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe<-list/509596> (by email<>)
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>