作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
祝大家有美好的一天。我从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/
我是一名优秀的程序员,十分优秀!