mysql
perintah dapat menampilkan XML secara langsung, menggunakan - -xml
opsi, yang tersedia setidaknya sejauh MySql 4.1.
Namun, ini tidak memungkinkan Anda untuk menyesuaikan struktur keluaran XML. Ini akan menampilkan sesuatu seperti ini:
<?xml version="1.0"?>
<resultset statement="SELECT * FROM orders" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<row>
<field name="emp_id">129</field>
<field name="cust_id">107</field>
<field name="region">Eastern</field>
</row>
</resultset>
Dan Anda ingin:
<?xml version="1.0"?>
<orders>
<employee emp_id="129">
<customer cust_id="107" region="Eastern"/>
</employee>
</orders>
Transformasi dapat dilakukan dengan XSLT menggunakan skrip seperti ini:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="resultset">
<orders>
<xsl:apply-templates/>
</orders>
</xsl:template>
<xsl:template match="row">
<employee emp_id="{field[@name='emp_id']}">
<customer
cust_id="{field[@name='cust_id']}"
region="{field[@name='region']}"/>
</employee>
</xsl:template>
</xsl:stylesheet>
Ini jelas jauh lebih bertele-tele daripada sintaks MSSQL yang ringkas, tetapi di sisi lain ini jauh lebih kuat dan dapat melakukan segala macam hal yang tidak mungkin dilakukan di MSSQL.
Jika Anda menggunakan prosesor XSLT baris perintah seperti xsltproc
atau saxon
, Anda dapat menyalurkan output mysql
langsung ke program XSLT. Misalnya:
mysql -e 'select * from table' -X database | xsltproc script.xsl -