diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index 1329968126..25adb5ce2c 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -1766,15 +1766,15 @@ class DFRN $msg = []; $msg["uid"] = $importer["importer_uid"]; - $msg["from-name"] = $xpath->query("dfrn:sender/dfrn:name/text()", $mail)->item(0)->nodeValue; - $msg["from-url"] = $xpath->query("dfrn:sender/dfrn:uri/text()", $mail)->item(0)->nodeValue; - $msg["from-photo"] = $xpath->query("dfrn:sender/dfrn:avatar/text()", $mail)->item(0)->nodeValue; + $msg["from-name"] = XML::queryValue($xpath, "dfrn:sender/dfrn:name/text()", $mail); + $msg["from-url"] = XML::queryValue($xpath, "dfrn:sender/dfrn:uri/text()", $mail); + $msg["from-photo"] = XML::queryValue($xpath, "dfrn:sender/dfrn:avatar/text()", $mail); $msg["contact-id"] = $importer["id"]; - $msg["uri"] = $xpath->query("dfrn:id/text()", $mail)->item(0)->nodeValue; - $msg["parent-uri"] = $xpath->query("dfrn:in-reply-to/text()", $mail)->item(0)->nodeValue; - $msg["created"] = DateTimeFormat::utc($xpath->query("dfrn:sentdate/text()", $mail)->item(0)->nodeValue); - $msg["title"] = $xpath->query("dfrn:subject/text()", $mail)->item(0)->nodeValue; - $msg["body"] = $xpath->query("dfrn:content/text()", $mail)->item(0)->nodeValue; + $msg["uri"] = XML::queryValue($xpath, "dfrn:id/text()", $mail); + $msg["parent-uri"] = XML::queryValue($xpath, "dfrn:in-reply-to/text()", $mail); + $msg["created"] = DateTimeFormat::utc(XML::queryValue($xpath, "dfrn:sentdate/text()", $mail)); + $msg["title"] = XML::queryValue($xpath, "dfrn:subject/text()", $mail); + $msg["body"] = XML::queryValue($xpath, "dfrn:content/text()", $mail); Mail::insert($msg); } diff --git a/src/Util/XML.php b/src/Util/XML.php index 4eed3a85f8..ec4bbe15f1 100644 --- a/src/Util/XML.php +++ b/src/Util/XML.php @@ -488,6 +488,15 @@ class XML return $first_item->attributes; } + public static function queryValue($xpath, $search, $context) + { + $result = $xpath->query($search, $context)->item(0)->nodeValue; + if (!is_object($result)) { + return ''; + } + return $result->nodeValue; + } + /** * escape text ($str) for XML transport *