3

フォームから入力されたデータを投稿するために使用しているこの simplexml スクリプトがあります。

$xml = simplexml_load_file("links.xml");

$sxe = new SimpleXMLElement($xml->asXML()); 

$person = $sxe->addChild("link");
$person->addChild("title", "Q: ".$x_title);
$person->addChild("url", "questions_layout.php#Question$id");

$sxe->asXML("links.xml"); 

それが出てくると、1行で次のようになります。

<link><title>Alabama State</title><url>questions_layout.php#Question37</url></link><link><title>Michigan State</title><url>questions_layout.php#Question37</url></link></pages>

しかし、私はHERETHIS AS WELLで見つかったメソッドを試しましたが、XML を行で正しくフォーマットすることはできません。

<link>
<title></title>
<url></url>
</link>

最初の参照リンクでは、文字列を XML として想定しているため、 に変更loadXMLしました。誰かがこれに対する解決策を見つけるのを手伝ってくれますか?loadloadXML

4

3 に答える 3

10

私の知る限り、simpleXML は単独では実行できません。

ただし、DOMDocument は可能です。

$dom = dom_import_simplexml($sxe)->ownerDocument;
$dom->formatOutput = TRUE;
$formatted = $dom->saveXML();
于 2012-04-12T23:21:10.700 に答える
2

上記のstackoverflow機関からの受け入れられた回答は、上記の質問を解決しなかったと思います。参照: [あなたの答えを試してみたところ、致命的なエラーが発生しました: Call to undefined method DOMElement::saveXML() on the line where the line$formatted = $dom->saveXML();

$simplexml = simplexml_load_file("links.xml");
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($simplexml->asXML());
$xml = new SimpleXMLElement($dom->saveXML());

$person = $xml->addChild("link");
$person->addChild("title", "Q: ".$x_title);
$person->addChild("url", "questions_layout.php#Question$id");
$xml->saveXML("links.xml"); 

于 2014-11-05T11:48:23.047 に答える