我想用simplexml解析一个rss文件。如果我打印特定标签,则仅选择直接内容 - 不包括子项和“子”标签。我如何访问标签包括。儿童标签名称及其内容?
//load rss into $xml
foreach ($this->xml->channel->item as $item) {
echo "<h3>{$this->out($item->title)}</h3>",
$this->out($item->description);
}
答案 0 :(得分:0)
您可以使用$ this-&gt; xml-&gt; children()来获取子节点,然后以递归方式使用它。我最近编写了一种方法,将一个XML块递归复制到另一个 - 这应该会向您展示可以使用的技术。
protected function copyXml(SimpleXMLElement $from, SimpleXMLElement $to)
{
// Create a new branch in the target, as per the source
$fromValue = (string) $from;
if ($fromValue)
{
$toChild = $to->addChild($from->getName(), (string) $from);
}
else
{
$toChild = $to->addChild($from->getName());
}
// Copy attributes across
foreach ($from->attributes() as $name => $value)
{
$toChild->addAttribute($name, $value);
}
// Copy any children across, recursively
foreach ($from->children() as $fromChild)
{
$this->copyXml($fromChild, $toChild);
}
}
HTH。