我在这里创建节点作为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');
答案 0 :(得分:1)
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>