During a Visual Studio build, I need to have an XML file generated from another XML file. It is obvious to me an XSLT template and transform is exactly what I need.
The way I prefer to accomplish this is to use the "Custom Tool" property found on project files. Is there already a built-in tool I can use for this purpose? My next option might be to use a pre-build step of the csproj. Again, is there a (Visual Studio or MSBUILD) pre-existing or pre-installed tool that I can invoke from a pre-build step to do this?
Finally, if need be, I could have modify the .csproj file itself to add a MSbuild Task which performs the transform (I think MSBuild comes with such a Task - if not I know they are available for download).
Overall, I'd just like to know the easiest way to get this done, and how to do it. I already know how to write XSL templates. :)
The standard way to transform XML data into other formats is by Extensible Stylesheet Language Transformations (XSLT). You can use the built-in XSLTRANSFORM function to convert XML documents into HTML, plain text, or different XML schemas. XSLT uses stylesheets to convert XML into other data formats.
XSLT is a mature, widely accepted standard. It can be used in browsers (even in old IE) and on the server side (nginx has an XSLT module, which can be used from programming languages, of course).
If you're using VS2010 you can use the built-in XslTransformation
task of MSBuild 4 in a post build step.
<Target Name="AfterBuild">
<XslTransformation
XslInputPath="transform.xslt"
XmlInputPaths="in.xml"
OutputPaths="out.xml" />
</Target>
I'd personally go with installing the MSBuild Community Tasks and invoking msbuild.exe from the PostBuild Event in the project settings.
A shudder just went down my spine at the thought of XSLT files too! :P
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With