我正在尝试将.txt文件转换为xml。我将所有内容集中在一个标签内,而不是将每个标签都放在自己的标签中。
$fp = fopen('notes.txt', 'r');
$xml = new XMLWriter;
$xml->openURI('notes.xml');
$xml->setIndent(true);
$xml->startElement('Notes');
while ($line = fgetcsv($fp)) {
$xml->startElement('note');
$xml->writeElement('dateTime', $line[0]);
$xml->writeElement('Operation', $line[1]);
$xml->writeElement('table', $line[2]);
$xml->writeElement('user', $line[3]);
$xml->endElement();
}
$xml->endElement();
这是我得到的:
<Notes>
<note>
<dateTime>2014-03-26 02:43:32 Insert Products Admin</dateTime>
<Operation/>
<table/>
<user/>
</note>
<note>
<dateTime>2014-03-26 02:53:04 Insert Products Admin</dateTime>
<Operation/>
<table/>
<user/>
</note>
<note>
<dateTime>2014-03-26 02:58:13 Insert Products Admin</dateTime>
<Operation/>
<table/>
<user/>
</note>
<note>
</Notes>
时间在正确的标签中,但是“插入”应该在操作中,表中的“产品”在用户中是“ admin”。如何解决此问题,使其正确放置?
这是我的.txt文件:
2014-03-26 02:43:32 Insert Products Admin
2014-03-26 02:53:04 Insert Products Admin
2014-03-26 02:58:13 Insert Products Admin
您应该将txt文件更改为使用“,”作为分隔符,或者为fgetcsv()配置一个:
$fp = fopen('notes.txt', 'r');
$xml = new XMLWriter;
$xml->openURI('notes.xml');
$xml->setIndent(true);
$xml->startElement('Notes');
while ($line = fgetcsv($fp, 0, "\t")) {
$xml->startElement('note');
$xml->writeElement('dateTime', $line[0]);
$xml->writeElement('Operation', $line[1]);
$xml->writeElement('table', $line[2]);
$xml->writeElement('user', $line[3]);
$xml->endElement();
}
$xml->endElement();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句