<Root>
...
<A CHANGE_THIS="Dont_ChengeME">
<B></B>
</A>
...
</Root>
&#13;
尝试更改元素A的属性名称 我选择的东西,使用php的simpleXML API。这就是我所做的:
$xml = simplexml_import_dom($xmldom);
$query = "root/A[@]";
$result = $xml->xpath($query);
if(!empty($result))
$result['CHANGE_THIS'] = "Blalalalal"; //i believe this is where am doing it wrong
&#13;
所有尝试都失败了。任何想法?
答案 0 :(得分:0)
你可以这样做:
$xml->A['changed_value'] = $xml->A['CHANGE_THIS'];
unset($xml->A['CHANGE_THIS']);
你的尝试不起作用的原因是
$result['CHANGE_THIS'] = "Blalalalal";
将字符串“Blalalala”分配给由“CHANGE_THIS”索引的数组元素。我不知道有效更改数组元素索引的简单方法,除了将元素复制到具有所需索引的新元素(即'changed_value'),然后取消设置原始数组元素。
答案 1 :(得分:0)
这是一种方法,假设您不需要使用XPath:
<?php
$xml = simplexml_load_file($xmldom);
$result = $xml->{'A'}->attributes();
if(!empty($result)) {
$preserve_this = $result['CHANGE_THIS'];
$result->addAttribute('Blalalalal', $preserve_this);
unset($result['CHANGE_THIS']);
}