我对DOM文档完全不熟悉,基本上我要做的就是加载一个RSS提要,只选择一个节点,然后将其保存到一个XML文件中。
下面是我从web提要加载的XML:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Markets</title>
<description/>
<link>http://www.website.com</link>
<language>en-us</language>
<copyright>XML Output Copyright</copyright>
<ttl>15</ttl>
<pubDate>Tue, 16 Nov 2010 09:38:00 +0000</pubDate>
<webMaster>admin@website.com</webMaster>
<image>
<title>title</title>
<url>http://www.website.com/images/xmllogo.gif</url>
<link>http://www.website.com</link>
<width>144</width>
<height>16</height>
</image>
<item>
<title>title</title>
<description>the description goes here
</description>
<enclosure url="http://www.website.com/images/image.png" type="image/png"/>
</item>
</channel>
</rss>下面是我获取<description>节点并将其保存到feed.xml的失败尝试:
<?php
$feed = new DOMDocument();
$feed->load('http://www.website.com/directory/directory/cz.c');
$nodeValue = $feed->getElementsByTagName('description')->item(0)->nodeValue;
$feed->save("feed.xml");
?>因此,基本上我需要获取描述标记,并将其保存为XML文件。
任何帮助都将不胜感激,谢谢你的帮助!
发布于 2010-11-16 18:37:59
几乎是正确的。要获取节点的"outerXml“,可以将该节点传递给saveXml()
$feed = new DOMDocument();
$feed->load('http://www.website.com/directory/directory/cz.c');
$xml = $feed->saveXml($feed->getElementsByTagName('description')->item(0));
file_put_contents("feed.xml", $xml);使用file_put_contents保存时不会包含XML prolog。请注意,在您的示例中,第一个description元素为空,因此该文件将包含<description/>。
如果希望将节点提取为独立的XML文档,则必须实例化一个新的DOMDocument并对DOMNode执行import操作,然后使用save()。
$dom = new DOMDocument($feed->xmlVersion, $feed->xmlEncoding);
$dom->appendChild(
$dom->importNode(
$feed->getElementsByTagName('description')->item(0),
TRUE
)
);
echo $dom->save('new.xml');发布于 2010-11-16 18:38:49
$feed = simplexml_load_file('feed.xml');
$descr=$feed->channel->description;尝尝这个
https://stackoverflow.com/questions/4193150
复制相似问题