XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Tim TSubject: Apply xsl to multiple files
Author: Tim T
Date: 14 Sep 2005 02:50 PM
Originally Posted: 14 Sep 2005 10:05 AM
I am currently using Stylus Studio Professional, and have created a new XML mapping project.<br> <br> The mapper was great, and I successfully mapped one schema to another, and the scenarios work fine for testing on several files. My question is this:<br> Can I apply the XSL to all of my 2000 files in a batch process?<br> <br> I don't mind creating/running a script, batch file, command line, or whatever, but I could not find the solution on the forums or in the help file.<br> <br> Additionally, all of my tag in the original file contain "my:" (i.e. <my:example>true</my:example>; they're InfoPath files). When I run the scenario, they are removed, along with the InfoPath header. I can and do replace them after the fact in a text editor, but can I have this in there from the start in Stylus Studio?<br> <br> Thanks for any help and feedback on this,<br> -Tim

Postnext
Tim TSubject: Apply xsl to multiple files
Author: Tim T
Date: 14 Sep 2005 02:59 PM
Perhaps my original post was a bit unclear; I am still quite new to this process and the terminology, and I imagine my naiveté occludes my view of a solution.

My main goal and priority is to be able to apply an xsl file created using the Stylus Studio mapper to multiple files. More specifically, I have 2000 files, which would be time prohibitive to create a scenario for each file.

Any help or advice would be greatly appreciated.

-Tim

Postnext
Tony LavinioSubject: Apply xsl to multiple files
Author: Tony Lavinio
Date: 14 Sep 2005 04:09 PM
In the bin directory where you installed Stylus Studio, there is a
program called StylusXslt.exe which will run XSLT from the command
line so you can use this in a batch file or 'for' statement.

As far as the my: prefix goes, the mapper will sometimes rearrange
namespace prefixes, but should not in any way affect the actual parsing
of the XML. If you think there is a problem, you can post the problem
(fixed and broken) sheets here by using the "Attach File" checkbox that
is above the "Message" box when you reply, or by emailing them to
stylus-field-report (at) stylusstudio.com for us to take a look at.

Postnext
Ivan PedruzziSubject: Apply xsl to multiple files
Author: Ivan Pedruzzi
Date: 14 Sep 2005 04:18 PM
Hi Tim

Here are few quick steps to run a transformation batch

- Save the script at the bottom of this message as C:\xslt-batch.vbs
- in Stylus Studio go to Tools -> Options -> Application Settings -> Custom Tools
- click new and name it xslt-batch
- fill the fields below as follow

Command: cscript.exe
Arguments: "c:\xslt-batch.vbs" "c:\Temp\batch\source" "${FilePath}" "c:\Temp\batch\target"

the second argument is the source directory
the fourth argument is the target directory

- click OK
- now open your XSLT then click Tools -> xslt-batch
Stylus will run the current stylesheet against all files in the source directory and will generate the output in the target directory.

Hope this helps
Ivan Pedruzzi
Stylus Studio Team


sourceDirectory = WScript.arguments(0)
xsltPath = WScript.arguments(1)
targetDir = WScript.arguments(2)
Set fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
prg = """c:\Program Files\Stylus Studio 6 XML Enterprise Edition\bin\msxsl.exe"""

WScript.echo "batch start"
WScript.echo "Source directory " + sourceDirectory
WScript.echo "XSLT " + xsltPath
WScript.echo "Target Directory " + targetDir

if fso.FolderExists(targetDir) and fso.FileExists(xsltPath) then
Set folder = fso.GetFolder(sourceDirectory)
For Each f1 in folder.Files
outPath = """" + targetDir + "\" + f1.name + """"
Set oExec = WshShell.Exec(prg + " " + f1.Path + " """ + xsltPath + """ -o " + outPath)
Do While oExec.Status = 0
WScript.Sleep 100
Loop
WScript.echo + f1.Path + " --> " + outPath
Next
end if
WScript.echo "batch finish"

Postnext
Tim TSubject: Apply xsl to multiple files
Author: Tim T
Date: 14 Sep 2005 04:34 PM
Thanks for the replies, this should set me in the right direction. Hopefully I'll have it all done for my boss by Monday:)

As far as the "my:" prefix goes, it parses the xml perfectly, only it omits the prefix in the output. Additionally, the "my:" prefix is not in the xsl. Can I add in the prefix on the xsl prior to transformation, along with the additional header info?

-Tim

Posttop
Tony LavinioSubject: Apply xsl to multiple files
Author: Tony Lavinio
Date: 14 Sep 2005 11:38 PM
Yes, you should be able to add any namespace prefix to the XSLT
and see it represented in the output.

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.