【发布时间】:2012-02-13 20:59:44
【问题描述】:
我正在尝试使用 PHP 编辑一些 XML。目前的 XML 看起来像:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Main Title</title>
<link>http://exmaple.com</link>
<description> blahblahblah </description>
<language>en</language>
<item>
<title>Tite1</title>
<link>http://www.example.com (THIS IS WHAT I WANT)</link>
<description>blah blah blah</description>
</item>
.
.
.
</channel>
</rss>
我尝试访问第二级链接,但我的代码只更改了第一个链接节点值。这是代码:
$xml->load('http://www.google.com/doodles/doodles.xml');
$element = $xml->getElementsByTagName('channel')->item(0);
$secondlvl = $element->getElementsByTagName('item')->item(0);
$2ndlevellinknode = $element->getElementsByTagName('link')->item(0);
$2ndlevellinknode->nodeValue = $newvalue;
有什么建议吗?也可以在这样的for循环中使用这行代码
for ($i = 0; $i <= 20; $i++) {
$element = $xml->getElementsByTagName('channel')->item(0);
$secondlvl = $element->getElementsByTagName('item')->item(0);
$2ndlevellinknode = $element->getElementsByTagName('link')->item($i);
$2ndlevellinknode->nodeValue = $newvalue;
}
【问题讨论】:
-
我个人觉得PHP's SimpleXML 更容易使用。
-
$2ndlevellinknode = $secondlvl->getElementsByTagName('link')->item(0); // 不是 $element->getElementsByTagName('link')->item(0);
-
有人可以举一个使用 SimpleXML 的例子吗?
-
我可以用 DomDocument 做点什么。你想把它换成什么?
-
我试图替换二级链接节点。
标签: php xml xml-parsing