1
我需要编写一个用于创建FM XML文件的Web服务。SimpleXML:无法将子项插入具有属性的节点
预期的输出文件看起来是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
<ERRORCODE>0</ERRORCODE>
<PRODUCT BUILD="27/11/2002" NAME="FileMaker Pro" VERSION="6.0Dv4"/>
<DATABASE DATEFORMAT="d.M.yyyy" LAYOUT="" NAME="Schlüssel Adresse für green" RECORDS="3" TIMEFORMAT="k:mm:ss"/>
<METADATA>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Datum" TYPE="DATE"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Sprache Typ" TYPE="TEXT"/>
...
</METADATA>
<RESULTSET FOUND="3">
<ROW MODID="0" RECORDID="1">
<COL>
<DATA>12.11.2012</DATA>
</COL>
...
</ROW>
</RESULTSET>
</FMPXMLRESULT>
这是我的PHP代码:
$xml = new SimpleXMLElement('<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult"></FMPXMLRESULT>');
$xml->addChild('ERRORCODE',0);
$xml->addChild('PRODUCT BUILD="27/11/2002" NAME="FileMaker Pro" VERSION="6.0Dv4"');
$xml->addChild('DATABASE DATEFORMAT="d.M.yyyy" LAYOUT=" " NAME="Schlüssel Adresse für green" RECORDS="3" TIMEFORMAT="k mm ss" ');
$node = $xml->addChild('METADATA');
$node->addChild('FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Datum" TYPE="DATE"');
$node->addChild('FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Sprache Typ" TYPE="TEXT"');
...
$node = $xml->addChild('RESULTSET FOUND="3"');
$node->addChild('FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Datum" TYPE="DATE"');
有两件事情,我不能去上班:
DATABASE节点中的TIMEFORMAT =“k:mm:ss”引发以下错误。卸下冒号“:”解决了错误信息的问题,但在80列将不会产生相同的文件
错误第2行:错误解析参数,因为有“FOUND一旦命名
= “3”'和RESULTSET中的一个孩子,这个RESULTSET节点会引发一个错误。如果没有孩子,它不会导致任何错误。如果FOUND =“3”被删除,则无错误。
此页面包含以下错误:
第2行错误在2199柱:预计 '>'
任何帮助,非常感谢!
奇怪的是,这与[此问题](http://stackoverflow.com/q/21379760/157957)的错误完全相同,显然是由不同的用户在同一天提出的! – IMSoP