2011-10-31 43 views
0

我格式化,因爲這(一個節點的例子)XML創建表單:PHP的SimpleXML基於XML

<company key="Nameofcompany" enabled="true"> 
    <title>Nameofcompany</title> 
    <phone type="domestic" href="tel:02480">02480</phone> 
    <phone type="international" href="tel:+33333333">+33 33 3333</phone> 
    <email href="mailto:[email protected]" /> 
    <homepage href="http://www.example.com" /> 
    <webcompanyURL href="http://m.example.com/sbv" /> 
    <balanceURL href="http://m.example.com/sbv/balance" /> 
    <youtube href="http://www.youtube.com/account">YouTube</youtube> 
    <facebook href="http://www.facebook.com/pages/Company/45454545?sk=wall" /> 
    <blog href="http://www.example.com/" /> 
    <opening-hours> 
     <line>08.15 - 16.00 (Summer 08.15-15.30)</line> 
    </opening-hours> 
    <services> 
     <phone-company type="domestic" href="tel:02480">02480</phone-bank> 
     <disable-card type="domestic" href="tel:02222">02222</disable-card> 
     <disable-card type="international" href="tel:+4702222">+47 02222</disable-card> 
     <disable-card type="sms" href="sms:02222?text=OLALA">02222</disable-card> 
     <disable-card type="email" href="mailto:[email protected]?subject=Olala&amp;body=Phone:+">[email protected]</disable-card> 
     <disable-card type="international" href="tel:+333333333">+33 3333333</disable-card> 
     <report-accident type="domestic" href="tel:02300">02300</report-accident> 
     <report-accident type="international" href="tel:+33 33 33 33 33">+33 33 33 33 33</report-accident> 
    </services> 
</bank> 

我需要創建HTML表單來編輯和創建節點,並將其保存在該XML文件。如何實現這樣的功能?

+0

順便說一下,你的XML無效 - 你用''打開了,但是用'':)關閉 – halfer

回答

0

我從構建HTML表單開始,然後在POST操作中檢索元素 - 就像將數據保存到數據庫一樣。

然後,您需要決定如何操作XML文檔 - 在PHP中有quite a few

我最喜歡的方法是SimpleXML,但使用任何你喜歡的。像這樣創建您的文檔:

$doc = new SimpleXMLElement('<company key="' . $key . '" enabled="true"/>'); 
$doc->addChild('title', $nameOfCompany); 
$hours = $doc->addChild('opening-hours'); 
$hours->addChild('line', $lineStr); 

或者,如果你希望所有一氣呵成創建文檔,你可以將其創建爲一個字符串,並將其提供給構造函數的SimpleXMLElement。

一旦你對SimpleXMLElement更精通一點,記住你可以擴展它和/或做各種有趣的事情,比如XPath查詢。例如,here是我在atm上的工作。

希望有幫助!