在这里,我正在创建节点作为AdSources节点的子节点。我可以创建多个同名"Ad"的节点。但是我无法为每个元素("广告")设置属性("id")。如果我尝试为第二个元素设置 ID 值,它说该元素已经具有相同的属性。即每次我尝试为它设置 id 时,都会单独转到第一个元素。
$xmlFile = 'mediationrequest2.xml';
$xml = new SimpleXMLExtended('<Mediation version="1.0"/>');
$adsources = $xml->addChild('AdSources');
$xml->AdSources[0]->addChild('Ad');
$xml->AdSources[0]->Ad->addAttribute('id', '1001');
$adsources->Ad[0]->addChild('Value', '5');
$adsources->Ad[0]->addChild('VASTAdTagURI');
$xml->AdSources[0]->Ad[0]->VASTAdTagURI->addCData('http://rtr.innovid.com/r1.515f10ae711057.99306980;cb=$rand');
$xml->AdSources[1]->addChild('Ad');
$xml->AdSources[0]->Ad->addAttribute('id', '1002');
$adsources->Ad[0]->addChild('Value', '5');
$adsources->Ad[0]->addChild('VASTAdTagURI');
$xml->AdSources[0]->Ad[0]->VASTAdTagURI->addCData('http://rtr.innovid.com/r1.515f10ae711057.99306980;cb=$rand');
SimpleXMLElement::addChild()
返回新的元素对象。使用该变量。
$xml = new SimpleXMLElement('<Mediation version="1.0"/>');
$adsources = $xml->addChild('AdSources');
$Ad = $adsources->addChild('Ad');
$Ad->addAttribute('id', '1001');
$Ad = $adsources->addChild('Ad');
$Ad->addAttribute('id', '1002');
echo $xml->asXml();
输出:
<?xml version="1.0"?>
<Mediation version="1.0">
<AdSources><Ad id="1001"/><Ad id="1002"/></AdSources>
</Mediation>