0

カスタム投稿タイプを保存した後、WordPress で XML ファイルに新しい行を追加したいと考えています。新しい行を追加する方法についてかなり混乱していますが、各行に複数の属性があります。私の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>

保存する新しいストアごとに、すべてのデータを 1 つの新しい行に追加したいと考えています。驚いたことに、XML ファイルに実際にデータを追加したことがないので、新しい子を作成して追加する必要があるかどうかはわかりません。現在のファイルのコードは次のとおりです

$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);
4

1 に答える 1

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>
于 2012-10-27T01:27:28.103 に答える