Solved

Correct XSLT for XML Transform to CSV VB.NET

Posted on 2004-10-11
4
693 Views
Last Modified: 2012-06-21
I have the following XML file:

 <?xml version="1.0" standalone="yes" ?>
- <NewDataSet>
- <Students>
  <Class>1 - A</Class>
  <Last_x0020_Name>Gilbert</Last_x0020_Name>
  <First_x0020_Name>F D</First_x0020_Name>
  <New_x0020_Score>21</New_x0020_Score>
  <Level>H</Level>
  <MaxScore>30</MaxScore>
  <NewNumScore>21</NewNumScore>
  <PercentDec>0.7</PercentDec>
  </Students>
- <Students>
  <Class>1 - A</Class>
  <Last_x0020_Name>Johnson</Last_x0020_Name>
  <First_x0020_Name>F</First_x0020_Name>
  <New_x0020_Score>18</New_x0020_Score>
  <Level>H</Level>
  <MaxScore>30</MaxScore>
  <NewNumScore>18</NewNumScore>
  <PercentDec>0.6</PercentDec>
 </Students>
</NewDataSet>


I just want the Class and Level field output as comma delimeted. Is this the right XSLT code? I got this from a similar question on EE but my XML is slightly different:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" version="1.0">
<xsl:template match="NewDataSet">
<xsl:for-each select="Students">
<xsl:value-of select="Class"/><xsl:text>,</xsl:text><xsl:value-of select="Level"/><xsl:text>&#013;</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:output>
</xsl:stylesheet>

Does anyone have some working code of an XslTransform in VB.NET? I cannot get past an error in the myxsltransform.Load(.......) command. According to gotdotnet the transform should be as easy as:

Dim xsltransform as XslTransform = new XslTransform()
xsltransform.Load("favorite.xsl")
xsltransform.Transform("MyDocument.xml", "TransformResult.xml")

Does this require the xml, xslt and result file to be in a certain directory?

Any help would be much appreciated.


0
Comment
Question by:nathanpz
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
4 Comments
 
LVL 7

Accepted Solution

by:
J_Mak earned 500 total points
ID: 12283214
Now that you've shown your stylesheet, I've noticed quite a few errors in it. For starters you have more than one root node which is not proper. Try this:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="text" version="1.0"/>
      <xsl:template match="/">
            <xsl:apply-templates select="NewDataSet"/>
      </xsl:template>
      <xsl:template match="NewDataSet">
            <xsl:for-each select="Students">
                  <xsl:value-of select="Class"/>
                  <xsl:text>,</xsl:text>
                  <xsl:value-of select="Level"/>
                  <xsl:text/>
            </xsl:for-each>
      </xsl:template>
</xsl:stylesheet>
0
 
LVL 7

Expert Comment

by:J_Mak
ID: 12283224
ALso, one important thing you were missing was the 'xsl' namespace prefix which I have placed in my example above. Cheers.
0
 

Author Comment

by:nathanpz
ID: 12283585
Thanks J_Mak,

My stylesheet was a mess, and that was the problem.

Ta.

0
 
LVL 7

Expert Comment

by:J_Mak
ID: 12283589
Cheers, glad I could help.
0

Featured Post

Space-Age Communications Transitions to DevOps

ViaSat, a global provider of satellite and wireless communications, securely connects businesses, governments, and organizations to the Internet. Learn how ViaSat’s Network Solutions Engineer, drove the transition from a traditional network support to a DevOps-centric model.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction In my previous article (http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SSIS/A_9150-Loading-XML-Using-SSIS.html) I showed you how the XML Source component can be used to load XML files into a SQL Server database, us…
I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.

729 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question