一尘不染

MySQL的XML输出

mysql

是否有可能将MySQL查询的输出直接转换为XML?

我指的是类似MSSQL的 SQL-XML 插件,例如:

SELECT * FROM table WHERE 1 FOR XML AUTO

返回文本(或精确地说是MSSQL中的xml数据类型),该文本包含根据表中的列生成的XML标记结构。

使用 SQL-XML ,还可以选择如下显式定义输出XML结构:

SELECT
  1       AS tag,
  NULL    AS parent,
  emp_id  AS [employee!1!emp_id],
  cust_id    AS [customer!2!cust_id],
  region    AS [customer!2!region]
 FROM table
 FOR XML EXPLICIT

生成如下的XML代码:

<employee emp_id='129'>
   <customer cust_id='107' region='Eastern'/>
</employee>

您有什么线索可以在MySQL中实现吗?

预先感谢您的回答。


阅读 671

收藏
2020-05-17

共1个答案

一尘不染

将XML与MySQL结合使用似乎是从MySQL查询转换为XML的各种不同方式的好地方。

从文章:

   use strict;
   use DBI;
   use XML::Generator::DBI;
   use XML::Handler::YAWriter;

   my $dbh = DBI->connect ("DBI:mysql:test",
                           "testuser", "testpass",
                           { RaiseError => 1, PrintError => 0});
   my $out = XML::Handler::YAWriter->new (AsFile => "-");
   my $gen = XML::Generator::DBI->new (
                                   Handler => $out,
                                   dbh => $dbh
                               );
   $gen->execute ("SELECT name, category FROM animal");
   $dbh->disconnect ();
2020-05-17