我正在使用DOMDocument. 那很好用。我需要解析我的 XML,找到特定的值,然后只再次显示某些节点。
XML 看起来像这样......
<rss version="2.0">
<channel>
<title>Title</title>
<link></link>
<item>
<title>Title #1</title>
<description>Here I want to filter</description>
</item>
<item>
<title>Title #2</title>
<description>Should not be displayed</description>
</item>
</channel>
我想在描述标签内搜索,如果找到关键字我想显示item. 如果找不到,我想删除 parent item。
到目前为止,这就是我尝试过的...
<?php
header('Content-Type: text/xml');
// Load our XML document
$rss = new DOMDocument();
$rss->load('https://myurl');
$description = $rss->getElementsByTagName('description');
foreach ($description as $node) {
$s = $node->nodeValue;
if (strpos($s, 'filter') !== false)
{
//found the keyword, nothing to delete
}
else
{
//didnt find it, now delete item
$node->parentNode->parentNode->removeChild($node->parentNode);
}
}
echo $description->saveXml();
我正在尝试获取所有描述节点,检查它们是否包含字符串,如果不包含,则删除父节点。搜索字符串有效,但删除节点无效。如果我回显我的 XML,则没有任何改变。
慕桂英3389331