gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 12:28:34 24 4
gpt4 key购买 nike

祝大家有美好的一天。我从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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com