PHP将数据从mysql数据库输出到XML文件

时间:2015-06-25 07:16:41

标签: php mysql xml

我从mysql数据库获取数据到XML文件。我使用以下PHP代码来获取输出。

PHP代码:

string[]

使用上面的代码我得到以下输出XML输出。

现在输出:

<?php

mysql_connect('localhost', 'root', '');
mysql_select_db('emptestdb');

$sql = "SELECT  name, username, DATE(visitdate) AS vdate, DATE(retdate) AS rdate, location FROM users";
$res = mysql_query($sql);

header("Content-Type: text/html/force-download");
header("Content-Disposition: attachment; filename='EMP_RECORDS.xml'");

$xml = new XMLWriter();

$xml->openURI("php://output");
$xml->startDocument('1.0','UTF-8');
$xml->setIndent(true);

$xml->startElement('engineers');

while ($row = mysql_fetch_assoc($res)) {
  $xml->startElement("engineer");

  $xml->writeAttribute('engID', $row['username']);
  $xml->writeAttribute('engName', $row['name']);

  $xml->startElement("location");
  $xml->writeAttribute('fieldLoc', $row['location']);

  $xml->writeElement('vistiDate',$row['vdate']);
  $xml->writeElement('retDate',$row['rdate']);

  $xml->endElement();
  $xml->endElement();
}

$xml->endElement();

header('Content-type: text/xml');

$xml->flush();
?>

我正在尝试对engID进行分组并获得以下输出

期望的输出:

<?xml version="1.0" encoding="UTF-8"?>

    <engineers>
     <engineer engID="1" engName="John">
      <location fieldLoc="Geneva">
       <vistiDate>2015-01-23</vistiDate>
       <retDate>2015-06-28</retDate>
      </location>
     </engineer>
     <engineer engID="1" engName="John">
      <location fieldLoc="Paris">
       <vistiDate>2015-02-12</vistiDate>
       <retDate>2015-02-17</retDate>
      </location>
     </engineer>
     <engineer engID="2" engName="Josh">
      <location fieldLoc="Paris">
       <vistiDate>2015-02-12</vistiDate>
       <retDate>2015-02-17</retDate>
      </location>
     </engineer>
    <engineer engID="3" engName="Rita">
      <location fieldLoc="Paris">
       <vistiDate>2015-02-12</vistiDate>
       <retDate>2015-02-17</retDate>
      </location>
     </engineer>
    </engineers>

有人可以指导我如何将它们组合在一起。 感谢。

1 个答案:

答案 0 :(得分:0)

非如此糟糕的想法应该是

  1. 处理您的数据并保存
  2. 生成你的xml

     private void button1_Click(object sender, EventArgs e)
    
            {
                GlolbalUtil.LogIn_Status = "false";
                this.Close();
                FrmLogin fl = new FrmLogin();
                fl.Show();
    
            }