使用xpath在SimpleDOM中添加注释

时间:2013-11-04 08:12:48

标签: php xpath comments simpledom

我正在尝试将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>

这是我的php文件,我尝试在名称为“debug”的元素中添加注释:

<?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。

1 个答案:

答案 0 :(得分:0)

According to the PHP doc,SimpleXMLElement :: xpath()返回一个数组。你不能用insertComment()链接它。

编辑: 您可以将isertComment与SimpleDom一起使用,但仅限于值:

$result = $xml->xpath("//string[@name='debug']")
$result[0]->insertComment(' This is a test comment ', 'after'); // after, append or before
$xml->asXML('test.xml');