是否可以通过php中的simplexml仅使用其标记名称来更改xml变量

时间:2012-01-06 14:38:34

标签: php xml simplexml

我知道我可以像$xml->path->to->tag = $newValue那样设置一个变量。但是,如果我只有标签名称并且不知道它的路径,我想知道如何设置它的变量呢?有可能吗?

1 个答案:

答案 0 :(得分:1)

您正在寻找

要在XML文档中的任何位置搜索元素的XPath//elementName

示例XML:

<foo>
    <bar>
        <baz bam="boom">baddam</baz>
    </bar>
</foo>

示例PHP代码:

$foo = simplexml_load_string($xml);
$allBazElements = $foo->xpath('//baz');
echo
    $allBazElements[0],        // baddam
    $allBazElements[0]['bam'], // boom
    PHP_EOL;

$allBazElements[0][0] = 'changed';
$allBazElements[0]['bam'] = 'changed too';

echo $foo->asXml();

将输出(demo

baddamboom
<?xml version="1.0"?>
<foo>
    <bar>
        <baz bam="changed too">changed</baz>
    </bar>
</foo>