-3

PHPでArrayToXMLコンバーターを作成しようとしています。

私はこのコードを持っています:

function assocArrayToXML($root_element_name,$ar) {

         $xml = new SimpleXMLElement("<?xml version=\"1.0\"?><{$root_element_name}></{$root_element_name}>");

         $f = create_function('$f,$c,$a','
            foreach($a as $k=>$v) {
                       if(is_array($v)) {
                $ch=$c->addChild($k);
                $f($f,$ch,$v);
            } else {
                $c->addChild($k,$v);
            }
        }');
        $f($f,$xml,$ar);
        return $xml->asXML();
}

http://php.net/manual/es/book.simplexml.phpから

私が抱えている問題は、次の行です。

$xml = new SimpleXMLElement("<?xml version=\"1.0\"?><{$root_element_name}></{$root_element_name}>");

文字列に「?>」が含まれており、php の「考える」が php タグの末尾であるためです。

この2文字をphp文字列に書き込むにはどうすればよいですか?

4

2 に答える 2

1

あなたの問題がどこにあるのかあなたの質問からは明らかではありません.あなたのコードを逐語的に使用することができます( Demo ):

$xml = new SimpleXMLElement("<?xml version=\"1.0\"?><{$root_element_name}/>");

simplexml の場合、これは実際には次の短い行と同じです (お好みで)。

$xml = new SimpleXMLElement("<{$root_element_name}/>");

SimpleXML は独自に XML プロローグを追加するため、それを記述する必要はありません。

文字をエスケープするので、

$xml = new SimpleXMLElement("<?xml version=\"1.0\"?\><{$root_element_name}/>");

これは必要ありませんが、元の答えだったのでここに保持します。

于 2013-02-28T15:59:39.507 に答える
0

文字列を分割するだけです:

'<' . '?xml ....
于 2013-02-28T15:57:34.947 に答える