mysql
कमांड का उपयोग करके सीधे XML को आउटपुट कर सकता है- -एक्सएमएल
विकल्प, जो कम से कम MySql 4.1 के रूप में उपलब्ध है।
हालांकि, यह आपको XML आउटपुट की संरचना को अनुकूलित करने की अनुमति नहीं देता है। यह कुछ इस तरह से आउटपुट करेगा:
<?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>
और आप चाहते हैं:
<?xml version="1.0"?>
<orders>
<employee emp_id="129">
<customer cust_id="107" region="Eastern"/>
</employee>
</orders>
रूपांतरण XSLT के साथ किया जा सकता है इस तरह की स्क्रिप्ट का उपयोग करना:
<?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>
यह स्पष्ट रूप से संक्षिप्त MSSQL सिंटैक्स की तुलना में अधिक वर्बोज़ है, लेकिन दूसरी ओर यह बहुत अधिक शक्तिशाली है और सभी प्रकार की चीजें कर सकता है जो MSSQL में संभव नहीं होगा।
यदि आप कमांड-लाइन XSLT प्रोसेसर जैसे xsltproc
. का उपयोग करते हैं या saxon
, आप mysql
. के आउटपुट को पाइप कर सकते हैं सीधे XSLT प्रोग्राम में। उदाहरण के लिए:
mysql -e 'select * from table' -X database | xsltproc script.xsl -