summaryrefslogtreecommitdiff
path: root/classes/opml.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-08-15 15:55:41 +0400
committerAndrew Dolgov <[email protected]>2012-08-15 15:55:41 +0400
commit65c82679802631525d7503b51bab31b568b883f4 (patch)
tree45c743f1f25de526065a46c22cbaedc5f188a690 /classes/opml.php
parentd75409bfdaa82d96cbd4a580c3f75b4b276d0a23 (diff)
opml: clean empty categories
Diffstat (limited to 'classes/opml.php')
-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.