0

特定の要素に xml ファイルにコメントを追加しようとしています。すべての要素には一意の名前があります。私のファイルは翻訳ファイルなので、文字列要素と複数形などのみが含まれています。

コメントを追加する最初の試みで使用するスニペットは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<resources>
        <string name="debug">You wish you could use that!</string>
        <string name="author">foobar</string> <!-- Insert author name here -->
        <string name="error">Wutfuq</string> <!-- New! -->
</resources>

そして、ここで「debug」という名前の要素にコメントを追加しようとする私のphpファイル:

<?php
error_reporting(E_ALL);
include "SimpleDOM.php";

$xml = simpledom_load_file("strings.xml");

$xml->xpath("//string[@name='debug']")->insertComment(' This is a test comment ', 'after');
$xml -> asXML('test.xml');
echo "This line should be shown, otherwise there might be some error";
?>

だから私の問題は、これがうまくいかないということです。ページ全体が白く、エラーがなく、test.xml が作成されないため、xpath を使用しているときにコメントを追加しようとしている行に間違いがあるようです。

助けていただければ幸いです。DOM を使用するように説得しないでください。

4

1 に答える 1

1

PHP doc によると、SimpleXMLElement::xpath() は配列を返します。insertComment() でチェーンすることはできません。

編集:SimpleDomでisertCommentを使用できますが、値に対してのみ使用できます:

$result = $xml->xpath("//string[@name='debug']")
$result[0]->insertComment(' This is a test comment ', 'after'); // after, append or before
$xml->asXML('test.xml');
于 2013-11-04T08:57:56.413 に答える