我一直在砸我的頭靠在牆上兩天試圖找出如何讓PHP到編碼我想要的XML。我嘗試了SimpleXML,發現有嚴重的侷限性,所以對於 現在我正在使用DomDocument來滿足我的需求。我的問題是非常基本的,什麼是正確的語法?如何PHP DomDocument創建屬性?
我從數據庫中檢索代碼,然後將其渲染爲xml。 XML結構必須與我要發佈的格式完全相同。問題在於涉及到屬性。輸出有三個屬性,需要用不同的值重複十二次。 我的問題是試圖找出如何呈現屬性,什麼代碼是必要的。
這裏是XML:
<inits>
<version>18.05.04_EP1</version>
<source>Live</source>
<lowid>265067</lowid>
<highid>265068</highid>
<ql>300</ql>
<name>Ofab Shark Mk 1</name>
<inits slider="DEF>===========][<AGG" percent="100" init="430" />
<inits slider="DEF>==========][=<AGG" percent="90" init="530" />
<inits slider="DEF>=========][==<AGG" percent="81" init="630" />
<inits slider="DEF>========][===<AGG" percent="72" init="730" />
<inits slider="DEF>=======][====<AGG" percent="63" init="830" />
<inits slider="DEF>======][=====<AGG" percent="54" init="930" />
<inits slider="DEF>=====][======<AGG" percent="45" init="1030" />
<inits slider="DEF>====][=======<AGG" percent="36" init="1130" />
<inits slider="DEF>===][========<AGG" percent="27" init="1290" />
<inits slider="DEF>==][=========<AGG" percent="18" init="1590" />
<inits slider="DEF>=][==========<AGG" percent="9" init="1890" />
<inits slider="DEF>][===========<AGG" percent="0" init="2190" />
</inits>
注意Inits包含的屬性,百分比和init。在這個例子中,它將顯示12次,這是從數據和php計算得出的。 以下是我目前使用的代碼。注意:我正在跳過數據和計算功能並手動填寫數據。
$root = $doc->createElement('inits');
$root = $doc->appendChild($root);
$version = $doc->createElement('version');
$version = $root->appendChild($version);
$versiontext = $doc->createTextNode($patchNum);
$versiontext = $version->appendChild($versiontext);
$source = $doc->createElement('source');
$source = $root->appendChild($source);
$sourcetext = $doc->createTextNode('live');
$sourcetext = $source->appendChild($sourcetext);
$xlowid = $doc->createElement('lowid');
$xlowid = $root->appendChild($xlowid);
$xlowidtext = $doc->createTextNode($lowid);
$xlowidtext = $xlowid->appendChild($xlowidtext);
$xhighid = $doc->createElement('highid');
$xhighid = $root->appendChild($xhighid);
$xhighidtext = $doc->createTextNode($highid);
$xhighidtext = $xhighid->appendChild($xhighidtext);
$xql = $doc->createElement('ql');
$xql = $root->appendChild($xql);
$xqltext = $doc->createTextNode($ql);
$xqltext = $xql->appendChild($xqltext);
我在哪裏何去何從拿到3個屬性的工作,完全像上面的XML例子。 謝謝。
如果你沒有得到答案,提高你的問題。這是第一次有嚴重的問題,你沒有問你關心的是什麼。你只是靠運氣得到答案。投票結束。 – hakre 2013-02-10 21:45:25
可能的重複[用PHP和SimpleXML對XML進行故障編碼](http://stackoverflow.com/questions/14791894/trouble-encoding-xml-with-php-and-simplexml) – hakre 2013-02-10 21:45:39
沒有什麼比從新手上拿回分離點。第一個問題與SIMPLEXML有關。當我意識到這是一種死衚衕的方法時,我發佈了關於DOMDocumen的信息,這使得它成爲一個不同的問題,儘管相同的數據被歸因於它。如果我想要這些數據用於JSON呢?那樣也會重複嗎?我不這麼認爲,但感謝提示。我很高興我找到了這個網站。 – 2013-02-12 21:02:03