2016-10-17 5 views
1

私はさまざまな記事を読み、PHP配列からXMLを作り出す方法を学びます。SimpleXMLはidを終了タグに入れます

SimpleXMLとループを使用して、ここから2つの記事を取り上げました。

私はこれを使用:

function array_to_xml($data, $xml_data) { 
foreach($data as $key => $value) { 
    if(is_numeric($key)){ 
     $key = 'point id="'.$key.'"'; //dealing with <0/>..<n/> issues 
    } 
    if(is_array($value)) { 
     $subnode = $xml_data->addChild($key); 
     array_to_xml($value, $subnode); 
    } else { 
     $xml_data->addChild("$key",htmlspecialchars("$value")); 
    } 
} 

}

をし、それが今の仕事の種類を行います。

ポイントは、多次元配列を使用して記事リストを送信しています。あなたは、そのことを推測するかもしれません、それは、

<article id="sth">bla</article> 

です。

<article id="a-1-0">Example of Naming</article id="a-1-0"> 

不可能(SimpleXMLをを使用しても)これらを開いて読みますた: 問題は、物事はこのように見えるので、この関数は、終了タグのidが含まれていること、です。

終了タグにIDを作成しないようにSimpleXMLを設定する方法はありますか? Thxは事前に、どんな助けも大きな価値があります。

EDIT:

コード・スニペットは、上記の点タグを扱っています。

$el = $xml_data->addChild('point', htmlspecialchars("$value")); 
$el->addAttribute('id', $key); 

子を追加した後に属性を追加します。そこに同じ問題は、彼らはあなたがこれを行うことができ

<point id="0">[...]</point id="0"> 
+0

代わりに 'addAttribute(" $ key "、htmlspecialchars(" $ value "))'を使用するべきではありませんか? – Rimble

答えて

0

のように見えます。

希望私は役に立ちました。

+0

その一部。問題は、私はその2つのケースがあるということです。私はseveratポイントとsereval記事を持っている、それは最初に出ていない、謝罪します。 – plachty

+0

それは plachty

+0

申し訳 です。理解できませんでした。これで問題は解決しませんでしたか? –

関連する問題