2010-03-14 75 views
0

这里是我的XML DOM。帮助与DOMDocument类在PHP

 <entities> 
      <entity id="7006276"> 
       <title>xxx</title> 
       <entities> 
        <entity id="7877579"> 
         <title>xxx</title> 
         <entities> 

我想取得编号为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

这个问题有点模糊。请张贴更多的代码。 – 2010-03-14 04:47:56

回答

1

现在,当您拨打DOMDocument::getElementById时,PHP不知道要查找哪个属性。根据documentation for getElementById,您需要设置通知PHP关于您的id属性与DOMElement::setIdAttribute或使用DOMDocument::validate验证您的文档与DTD。

1

您可以使用xpath按属性选择元素。你将不得不将其转换为simplexml并检查以确保它正确加载。

没有跑这一点,但这里是基本概念:

$sxe = simplexml_import_dom($this->xmlDocument); 

$data = $sxe->xpath('//entity[@id="700627"]'); 

    foreach ($data as $value) 
    { 
      $value->addChild('entity'); 
    }