summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/opml.php10
1 files changed, 10 insertions, 0 deletions
diff --git a/classes/opml.php b/classes/opml.php
index f7bab4fff..011c66eb2 100644
--- a/classes/opml.php
+++ b/classes/opml.php
@@ -201,6 +201,16 @@ class Opml extends Protected_Handler {
$doc->formatOutput = true;
$doc->preserveWhiteSpace = false;
$doc->loadXML($out);
+
+ $xpath = new DOMXpath($doc);
+ $outlines = $xpath->query("//outline[@title]");
+
+ // cleanup empty categories
+ foreach ($outlines as $node) {
+ if ($node->getElementsByTagName('outline')->length == 0)
+ $node->parentNode->removeChild($node);
+ }
+
$res = $doc->saveXML();
// saveXML uses a two-space indent. Change to tabs.