php - 如何从 MYSQL 数据库导出 XML 文件为每条记录创建一个 XML 文件?

标签 php mysql xml

祝大家有美好的一天。我从MYSQL数据库导出了一组xml数据。但是,我想将现有的 xml 文件分成 1 个 XML 文件中的 1 行。示例如下:

从数据库导出的 XML 结果:

文件名:result01.xml

文件中的脚本:

<ROWDATA>
<ROW>
    <DOCKEY>57911</DOCKEY>
    <DOCNO>MY1113</DOCNO>
    <DOCDATE>20141201</DOCDATE>
</ROW>
<ROW>
    <DOCKEY>57913</DOCKEY>
    <DOCNO>MY1114</DOCNO>
    <DOCDATE>20141201</DOCDATE>

</ROW>
<ROW>
    <DOCKEY>57915</DOCKEY>
    <DOCNO>MY1115</DOCNO>
    <DOCDATE>20141201</DOCDATE>
</ROW>
<ROW>
    <DOCKEY>57915</DOCKEY>
    <DOCNO>MY1115</DOCNO>
    <DOCDATE>20141201</DOCDATE>
</ROW>
<ROW>
    <DOCKEY>57957</DOCKEY>
    <DOCNO>MY1160</DOCNO>
    <DOCDATE>20141201</DOCDATE>
</ROW>
</ROWDATA>

但我需要的是每行创建一个文件:

文件名:57911.MY1113.xml 文件中的 XML:

<ROWDATA>
    <ROW DOCKEY="57911" DOCNO="MY1113" DOCDATE="20141201">
</ROW></ROWDATA>

文件名:57913.MY1114.xml 文件中的 XML:

<ROWDATA>
      <ROW DOCKEY="57913" DOCNO="MY1114" DOCDATE="20141201">
</ROW></ROWDATA>

有谁知道是否有一种创建多个 XML 文件的简单方法

正如我提到的。非常感谢您的反馈。

非常感谢。

最佳答案

对于 PHP,它看起来像这样:

$outDir = 'path/to/output/dir';
$src = 'result01.xml';

// create the document and load our source xml file
$srcDom = new DOMDocument();
$srcDom->load($src);

// pull all the ROW elements with xpath
$rowFinder = new DOMXpath($srcDom);
$rows = $rowFinder->query('//ROW');

// loop over the ROWs
foreach($rows as $row) {

   // create a new document for our export.
   $outDoc = new DOMDocument();
   // create a ROWDATA element for our root node
   $outRoot = $outDoc->createElement('ROWDATA');

   // import the ROW node (and all its descendents into the new document
   $outRow = $outDoc->importNode($row, true);

   $filename = array(
      'DOCKEY' => '',
      'DOCNO' => ''
   );
   foreach ($outRow->childNodes as $datum) {
      // add the values for segements of the filename
      if (array_key_exists($datum->nodeName, $filename)) {
         $filename[$datum->nodeName] = $datum->nodeValue;
      }
   }

   // append the ROW to ROWDATA
   $outRoot->appendChild($outRow);

   // append the ROWDATA to our document
   $outDoc->appendChild($outRoot);

   // save the xml to file using strtr to create the file name from
   // our array of filename segments
   $outDoc->save(strtr($outDir . '/DOCKEY.DOCNO.xml', $filename));
}

关于php - 如何从 MYSQL 数据库导出 XML 文件为每条记录创建一个 XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27935977/

相关文章:

php - MySQL MATCH AGAINST 查询不返回某些请求

javascript - 限制对特定页面的访问

php - 在php中使用函数查询mysql数据库

java - 获取错误 - 无法读取模式文档 - JBPM

python - 使用 python 编写 XML 文件

php - CodeIgniter - 将 CSV 上传到数据库问题

php - 简单的 JavaScript 跟踪脚本

php - Symfony 2 在控制台中记录异常

mysql - 如何连接mysql复选框表A和另一个表B中的复选框结果字段?

c# - 在 C# 中写入 XML - 'Token StartElement in state Epilog would result in an invalid XML document' 错误