xsl-list
[Top] [All Lists]

Re: [xsl] Collection is not working for Bulk XML

2018-06-08 11:49:08
The issue appears to be that mailinfo is NOT the root element of your documents 
... mailinfoData is.... So /mailinfo evaluates to the empty sequence 

Sent from my iPad

On 8 Jun 2018, at 17:44, Rahul Singh rahulsinghindia15(_at_)gmail(_dot_)com 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

Hi,

I have bulk XML's and stored in directory C:/Users/1289568903/Desktop/Data as 
below:

a.xml:

      <?xml version="1.0" encoding="UTF-8"?>
      <mailInfoData>
      <mailInfo>rahuls(_at_)gmail(_dot_)com</mailInfo>
      </mailInfoData>
      
b.xml:

      <?xml version="1.0" encoding="UTF-8"?>
      <mailInfoData>
      <mailInfo>rahult(_at_)gmail(_dot_)com</mailInfo>
      </mailInfoData>
      
c.xml:

      <?xml version="1.0" encoding="UTF-8"?>
      <mailInfoData>
      <mailInfo>rahulc(_at_)gmail(_dot_)com</mailInfo>
      </mailInfoData>
      
I need output as below from all xml:

<mailCollect>
      a.xml <mailInfo>rahuls(_at_)gmail(_dot_)com</mailInfo>
      b.xml <mailInfo>rahult(_at_)gmail(_dot_)com</mailInfo>
      c.xml <mailInfo>rahulc(_at_)gmail(_dot_)com</mailInfo>
</mailCollect>

And below is my XSL code but collection is not working:


<?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/1289568903/Desktop/Data'"/>
      <xsl:template match="node()|@*">
              <xsl:copy>
                      <xsl:apply-templates select="node()|@*"/>
              </xsl:copy>
      </xsl:template>
      <xsl:template match="/">
              <xsl:result-document href="Merged.xml" method="xml" 
indent="yes">
                      <mailCollect>
                              <xsl:for-each 
select="collection(concat($DocumentsURI,'?select=*.xml;recurse=yes;on-error=ignore'))">
                                      <xsl:apply-templates 
select="/mailInfo"/>
                              </xsl:for-each>
                      </mailCollect>
              </xsl:result-document>
      </xsl:template>
</xsl:stylesheet>


Thanks.
XSL-List info and archive
EasyUnsubscribe (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>