2012-10-25 53 views
0

我希望在保存我的自定義帖子類型後向WordPress添加一個新的XML文件行。我很困惑如何添加一個新行,但每行有多個屬性。我的XML文件中的每一行是如下使用具有多個屬性的PHP將新數據行添加到XML

<markers> 
    <marker name="" lat="" lng="" type="" address="" phone="" hours1="" /> 
    <marker name="" lat="" lng="" type="" address="" phone="" hours1="" /> 
    <marker name="" lat="" lng="" type="" address="" phone="" hours1="" /> 
</markers> 

對於每一個新店,我救我希望它的所有數據添加到一個新行。我不知道是否需要創建一個新的孩子,然後添加,因爲我從來沒有真正將數據添加到XML文件之前,surprsingly。我對我的當前文件的代碼如下

$xml = new SimpleXMLElement('<xml/>'); 
$stores = get_posts(array('post_type'=>'store', 'numberposts'=>-1)); 
$xml->addChild('markers'); 

$name = $_POST['post_name']; 
$lat = $_POST['wpcf']['latitude']; 
$lng = $_POST['wpcf']['longitude']; 
$type = $_POST['wpcf']['features']; 
$address = $_POST['wpcf']['address']; 
$phone = $_POST['wpcf']['telephone']; 
$hours1 = $_POST['wpcf']['mon-fri'] . ", " . $_POST['wpcf']['saturday'] . ", " . $_POST['wpcf']['sunday'] ; 

$xml->stores->addChild('marker'); 
$xml->stores->addChild('name', $name); 
$xml->stores->addChild('lat', $lat); 
$xml->stores->addChild('lng', $lng); 
$xml->stores->addChild('type', $type); 
$xml->stores->addChild('address', $address); 
$xml->stores->addChild('phone', $phone); 
$xml->stores->addChild('hours1', $hours1); 

$file = SITE_URL() . '/testing.xml'; 
$open = fopen($file, 'w') or die ("File cannot be opened."); 
fwrite($open, $xml->asXML()); 
fclose($open); 
+0

你有沒有試過[addAttribute](http://www.php.net/manual/en/simplexmlelement.addattribute.php)? – maiorano84

+2

該死的我怎麼沒有意識到這一點!我一直盯着這段代碼太長時間了,我錯過了最簡單的事情!謝謝:) –

+0

發生在我們最好的,brotato。很高興你有它排序。 – maiorano84

回答

0

正確的語法來實現你要找的是(某些屬性略)的XML輸出:

$xml = new SimpleXMLElement('<xml/>'); 
$xml->addChild("markers"); 
$xml->markers->addChild("marker"); 
$xml->markers->marker->addAttribute('lat', 0); 
print_r($xml->saveDoc()); 

將輸出:

<?xml version="1.0"?> 
<xml><markers><marker lat="0"/></markers></xml> 
相關問題