我需要一些帮助,有两个主题
:
我需要有一些信息从数据库到一个xml。
$xml->startElement('job');
$xml->startElement("jobs");
$xml->writeRaw(utf8_encode($row['post_name']));
$xml->endElement();
$xml->startElement("id");
$xml->writeRaw(utf8_encode($row['ID']));
$xml->endElement();
这就得到了像
这样的结果<job>
<jobs>consultoresformadores-para-zona-de-lisboa</jobs>
<id>2320</id>
</job>
但是我需要像
那样显示<job id="2320">
<jobs>consultoresformadores-para-zona-de-lisboa</jobs>
</job>
第二个主题是我需要将日期数据转换为特定格式
我的代码如下:
$xml->startElement("expire");
$strval = unserialize(utf8_encode($row['meta_value']) );
$xml->writeRaw($strval[validTo]);
$xml->endElement();
显示的结果是
<expire>Mon, 30 Jun 2014</expire>
但是我需要它像
那样呈现<expire>30.06.2014</expire>
Thanks in advanced
对于第一个问题,您需要使用writeAttribute函数(http://www.php.net/manual/en/function.xmlwriter-write-attribute.php)添加属性:
$xml->startElement('job');
$xml->startElement("jobs");
$xml->writeAttribute("id", utf8_encode($row['ID']));
$xml->writeRaw(utf8_encode($row['post_name']));
$xml->endElement();
对于第二个问题,您需要使用date和strtotime函数来格式化日期:
$xml->startElement("expire");
$strval = unserialize(utf8_encode($row['meta_value']) );
$xml->writeRaw(date("d.m.Y", strtotime($strval[validTo])));
$xml->endElement();
试试这样做。您可以看到这些代码在ideone中联机工作。我添加了一些随机值,只是为了测试,所以改变你的真实变量。
<?php
$xml = new XMLWriter();
$xml->openMemory();
$xml->startElement('job');
$xml->startAttribute('id');
$xml->writeRaw(utf8_encode("123"));
$xml->endAttribute();
$xml->startElement("jobs");
$xml->writeRaw(utf8_encode("1nflktd"));
$xml->endElement();
$xml->startElement("expire");
$t = "Mon, 30 Jun 2014";
$xml->writeRaw(date("d.m.Y", strtotime($t)));
$xml->endElement();
$xml->endDocument();
echo $xml->outputMemory();
你的答案:
- 在
job
节点中启动一个属性 - 使用
date
和strtotime
转换日期。
试试这个。
$xml = new XMLWriter();
$xml->openMemory();
$xml->startElement("job");
$xml->writeAttribute("id", utf8_encode($row['ID']));
$xml->startElement("jobs");
$xml->writeRaw(utf8_encode($row['post_name']));
$xml->endElement();
$xml->endElement();
$xml->startElement("expire");
$strval = unserialize(utf8_encode($row['meta_value']));
$xml->writeRaw(date("d.m.Y", strtotime($strval[validTo])));
$xml->endElement();
print $xml->flush();