Slik konverterer XML til CSV Bruke XSL

Slik konverterer XML til CSV Bruke XSL


Den økende bruken av XML-teknologier i ulike applikasjoner har resultert i behovet til utgang XML-filer i flere formater slik at eldre systemer kan bruke dem. For mange programmerere og IT-profesjonelle, er denne konverteringen ofte tidkrevende og krever nøye overveielser av datastrukturer innebygd i XML-dokumentet. Extensible Stylesheet Language (XSL) bistår programmerere i å transformere XML-filer til HTML.

Bruksanvisning

1 Viser XML krever bruk av eXtensible Stylesheet Language Transformations (XSLT), som er den anbefalte stilark språket XML av World Wide Web Consortium (W3C) og er mer sofistikert enn Cascading Style Sheet (CSS). XSLT brukes ofte til å transformere XML til HTML før den vises av en nettleser. Et eksempel på et XML-dokument / fil (dvs. sample.xml) er vist nedenfor:

<? Xml version = "1.0" encoding = "UTF-8"?>
<studenter>

&lt;student id=&quot;10001&quot;>
&lt;name given=&quot;Mark&quot; family=&quot;Smith&quot;/>
&lt;gender>Male&lt;/gender>
&lt;address street=&quot;1123 Buffalo Street&quot; city=&quot;Indianapolis&quot; state=&quot;IN&quot;/>
&lt;emailAddress>[email protected]&lt;/emailAddress>
&lt;phoneNumber>555-555-5553&lt;/phoneNumber>
&lt;/student>
.....
.....

</ Studenter>

I den gitte sample.xml filen, kan du forvandle XML ved hjelp av følgende XSL kildekoden (dvs. sample.xsl):

<? Xml version = "1.0" encoding = "UTF-8"?>
<Xsl: stilark version = "1.0" xmlns: xsl = "http://www.w3.org/1999/XSL/Transform&quot;

xmlns=&quot;http://www.w3.org/1999/xhtml&quot;>
&lt;xsl:template match=&quot;/&quot;>
&lt;html>
&lt;table>
&lt;xsl:for-each select=&quot;//student&quot;>
&lt;tr>
&lt;td>
&lt;xsl:value-of select=&quot;@id&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;name/@given&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;name/@family&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;gender&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;address/@street&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;address/@city&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;address/@state&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;emailAddress&quot;/>
&lt;xsl:value-of select=&quot;','&quot;/>
&lt;xsl:value-of select=&quot;phoneNumber&quot;/>
&lt;/td>
&lt;/tr>
&lt;/xsl:for-each>
&lt;/table>
&lt;/html>
&lt;/xsl:template>

</ Xsl: stil>

2 For å konvertere sample.xml fil til CSV, må du referere til ovenfor XSL stilark i XML-dokument ved hjelp av header informasjon: <? Xml-stylesheet type = "text / xsl" href = "sample.xsl"> . Den resulterende XML-dokument vil ligne på det som vises nedenfor.

<? Xml version = "1.0" encoding = "UTF-8"?>
<? Xml-stylesheet type = "text / xsl" href = "sample.xsl"?>
<studenter>

&lt;student id=&quot;10001&quot;>
&lt;name given=&quot;Mark&quot; family=&quot;Smith&quot;/>
&lt;gender>Male&lt;/gender>
&lt;address street=&quot;1123 Buffalo Street&quot; city=&quot;Indianapolis&quot; state=&quot;IN&quot;/>
&lt;emailAddress>[email protected]&lt;/emailAddress>
&lt;phoneNumber>555-555-5553&lt;/phoneNumber>
&lt;/student>
&lt;student id=&quot;10002&quot;>
&lt;name given=&quot;Jane&quot; family=&quot;Doe&quot;/>
&lt;gender>Female&lt;/gender>
&lt;address street=&quot;1271 Buffalo Street&quot; city=&quot;Indianapolis&quot; state=&quot;IN&quot;/>
&lt;emailAddress>[email protected]&lt;/emailAddress>
&lt;phoneNumber>555-555-5554&lt;/phoneNumber>
&lt;/student>
&lt;student id=&quot;10003&quot;>
&lt;name given=&quot;John&quot; family=&quot;Smith&quot;/>
&lt;gender>Male&lt;/gender>
&lt;address street=&quot;1281 Buffalo Street&quot; city=&quot;Indianapolis&quot; state=&quot;IN&quot;/>
&lt;emailAddress>[email protected]&lt;/emailAddress>
&lt;phoneNumber>555-555-5555&lt;/phoneNumber>
&lt;/student>

</ Studenter>

3 Når du åpner ovenfor sample.xml kildekoden i en nettleser, vil du generere en CSV-utgang i nettleseren, i likhet med det som er vist nedenfor:

10001, Mark Smith, Mann, 1123 Buffalo Street, Indianapolis, IN, marksmith @ abc.com, 555-555-5553
10002, Jane, Doe, Kvinne, 1271 Buffalo Street, Indianapolis, IN, janedoe @ abc.com, 555-555-5554
10003, John Smith, Mann, 1281 Buffalo Street, Indianapolis, IN, AlfAndersen @ abc.com, 555-555-5555

Hint

  • Det finnes andre metoder for å konvertere XML-data til CSV. Valget vil avhenge av hvilken type prosjekt du jobber med. For eksempel, hvis du arbeider med en XML-data som er lagret på MySQL database, så du enkelt kan eksportere data fra MySQL til et Excel-regneark og deretter konvertere den resulterende regneark til CSV.