使用DOM方法根据XML子节点值删除所在的父节点出错请教,谢谢
时间:2011-05-07
来源:互联网
我的xml文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
- <books>
- <book>
<author>Jack Herrington</author>
<title>PHP Hacks</title>
<publisher>O'Reilly</publisher>
</book>
- <book>
<author>Jack Herrington</author>
<title>Podcasting Hacks</title>
<publisher>O'Reilly</publisher>
</book>
</books>
程序如下:
<?php
$doc = new DOMDocument();
$url="book.xml";
$xml_str=file_get_contents($url);
$doc->loadXML($xml_str);
$books = $doc->getElementsByTagName( "book" );
foreach( $books as $book )
{
$titles = $book->getElementsByTagName( "title" );
$title = $titles->item(0)->nodeValue;
if($title=="PHP Hacks")
{
$titles->parentNode->parentNode->removeChild($titles->parentNode);
}
}
?>
运行后提示错误:Fatal error: Call to a member function removeChild() on a non-object in E:\PHP MySQL\xampp\htdocs\xml1.php on line 14
请问下是为什么,谢谢
<?xml version="1.0" encoding="UTF-8" ?>
- <books>
- <book>
<author>Jack Herrington</author>
<title>PHP Hacks</title>
<publisher>O'Reilly</publisher>
</book>
- <book>
<author>Jack Herrington</author>
<title>Podcasting Hacks</title>
<publisher>O'Reilly</publisher>
</book>
</books>
程序如下:
<?php
$doc = new DOMDocument();
$url="book.xml";
$xml_str=file_get_contents($url);
$doc->loadXML($xml_str);
$books = $doc->getElementsByTagName( "book" );
foreach( $books as $book )
{
$titles = $book->getElementsByTagName( "title" );
$title = $titles->item(0)->nodeValue;
if($title=="PHP Hacks")
{
$titles->parentNode->parentNode->removeChild($titles->parentNode);
}
}
?>
运行后提示错误:Fatal error: Call to a member function removeChild() on a non-object in E:\PHP MySQL\xampp\htdocs\xml1.php on line 14
请问下是为什么,谢谢
作者: ljabc2010 发布时间: 2011-05-07
这样试试:
<?php
$doc = new DOMDocument();
$url="book.xml";
$xml_str=file_get_contents($url);
$doc->load($xml_str);
$book = $doc->getElementsByTagName( "book" );
foreach( $x in $book ) {
$title = $book->getElementsByTagName("title")[0];
if($title->nodeValue=="PHP Hacks"){
$book->removeChild($title);
}
}
?>
<?php
$doc = new DOMDocument();
$url="book.xml";
$xml_str=file_get_contents($url);
$doc->load($xml_str);
$book = $doc->getElementsByTagName( "book" );
foreach( $x in $book ) {
$title = $book->getElementsByTagName("title")[0];
if($title->nodeValue=="PHP Hacks"){
$book->removeChild($title);
}
}
?>
作者: toury 发布时间: 2011-05-07
错了,看这个PHP code
<?php $doc = new DOMDocument(); $url="book.xml"; $xml_str=file_get_contents($url); $doc->load($xml_str); $book = $doc->getElementsByTagName("book")[0]; foreach( $x in $book ) { if($x->tagName=='title'&&$x->nodeValue=="PHP Hacks"){ $book->removeChild($x); } } ?>
作者: toury 发布时间: 2011-05-07
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28