这是我的xml DOM。
<entities>
<entity id="7006276">
<title>xxx</title>
<entities>
<entity id="7877579">
<title>xxx</title>
<entities>
我希望获得ID为7006276的'实体',这样我就可以访问其子'实体'来为它创建一些'实体'元素。
我试过了:
$this->xmlDocument = new DOMDocument();
// some code creating the above elements (you dont have to care about this comment code...it just creates the above xml structure
// $this->xmlDocument->createElement('entity');
// $sourceEntityElement->appendChild($newEntityElement);
// and so on...
// now i want to get the entities mentioned...
$xmlEntities = $this->xmlDocument->getElementById('7006276')->entities;
但它似乎无法奏效。任何想法我如何得到它所以我可以创造更多的“实体”元素?
答案 0 :(得分:1)
现在,PHP在调用DOMDocument::getElementById
时不知道要查找的属性。根据{{3}},您需要使用id
向PHP通知DOMElement::setIdAttribute
属性,或者使用DOMDocument::validate
针对DTD验证您的文档。
答案 1 :(得分:1)
您可以使用xpath按属性选择元素。您必须将其转换为simplexml并检查以确保正确加载。
没有运行,但这是基本概念:
$sxe = simplexml_import_dom($this->xmlDocument);
$data = $sxe->xpath('//entity[@id="700627"]');
foreach ($data as $value)
{
$value->addChild('entity');
}