帮助php中的DOMDocument类

时间:2010-03-14 04:37:20

标签: php xml dom

这是我的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;

但它似乎无法奏效。任何想法我如何得到它所以我可以创造更多的“实体”元素?

2 个答案:

答案 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');
    }