php DomDocument->getElementById()为空

zwl0219 2010-02-03 02:22:25
今天编写个php操作xml的程序 从文档中看到 DomDocument->getElementById()
文档中说需要设置id 属性 和DOMDocument->validateOnParse =ture

给的例子中并没有显示怎么设置id属性 我用setIdAttribute 结果说不支持此函数
谁能告诉我怎么用这个啊 给个例子 谢谢各位大虾了
...全文
351 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwl0219 2010-02-03
  • 打赏
  • 举报
回复
谢谢 7楼的 其实我也一直用 DTD 但是老是提示 空格的问题 不过把你的代码考过去就没有问题了
张吉Jerry 2010-02-03
  • 打赏
  • 举报
回复
另外还有两种方法:使用DTD或使用XPath。

$xml = <<<XML
<!DOCTYPE news
[
<!ELEMENT news (item*)>
<!ELEMENT item (title)>
<!ELEMENT title (#PCDATA)>
<!ATTLIST item id ID #REQUIRED>
]>
<news>
<item id="ITEM-1"><title>Item1</title></item>
<item id="ITEM-2"><title>Item2</title></item>
</news>
XML;
$doc = new DOMDocument();
$doc->validateOnParse = true;
$doc->loadXML($xml);
echo $doc->getElementById('ITEM-1')->childNodes->item(0)->nodeValue;

$xpath = new DOMXPath($doc);
echo $xpath->query('//item[@id="ITEM-1"]')->item(0)->nodeValue;
张吉Jerry 2010-02-03
  • 打赏
  • 举报
回复
我这边运行没有问题。环境winxp+apache2.2+php5.3.1

$dom=new DomDocument();
$dom->loadXML('<conf name="other_ppd_keyword"/>');

$conf=$dom->getElementsByTagName('conf');

if(!empty($conf)){
foreach($conf as $i){
$i->setIdAttribute('name', true);
}
}
echo $dom->getElementById('other_ppd_keyword')->tagName;//conf
zwl0219 2010-02-03
  • 打赏
  • 举报
回复
我的代码

$dom=new DomDocument();
$path=dirname(__FILE__);
$dom->validateOnParse=true;
$dom->load("config.xml");

$conf=$dom->getElementsByTagName('conf');

if(!empty($conf)){
foreach($conf as $i){
$i->setIdAttribute('name', true);
}
}
echo $dom->getElementById('other_ppd_keyword')->tagName;


提示错误DOMElement::setIdAttribute() [function.DOMElement-setIdAttribute]: Not yet implemented
张吉Jerry 2010-02-03
  • 打赏
  • 举报
回复
$xml = '<news><item id="1"><title>Item1</title></item><item id="2"><title>Item2</title></item></news>';
$doc = new DOMDocument();
$doc->loadXML($xml);
foreach($doc->getElementsByTagName('item') as $item)
{
$item->setIdAttribute('id', true);
}
echo $doc->getElementById('1')->childNodes->item(0)->nodeValue;//Item1
zwl0219 2010-02-03
  • 打赏
  • 举报
回复
http://school.itzcn.com/special-spid-30.html
确实不错 但并没有找到我要的东西 你能告诉我 那个里面有相关东西么 谢谢
_JeffreyWu 2010-02-03
  • 打赏
  • 举报
回复
我是来学习的..坐等大牛

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧