aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2018-04-03 19:43:59 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2018-04-06 22:56:09 -0500
commitbf9d3d4abaecc4e842c38866f039ebd8f5f96948 (patch)
tree0e9776345522beb9ebb926a2027d5ffef8d2975f
parentbf953989cd9475f888bbd975ae07ec447fbc340c (diff)
downloadpleroma-bf9d3d4abaecc4e842c38866f039ebd8f5f96948.tar.gz
XML: use try/catch with XPath functions
-rw-r--r--lib/pleroma/web/xml/xml.ex18
1 files changed, 12 insertions, 6 deletions
diff --git a/lib/pleroma/web/xml/xml.ex b/lib/pleroma/web/xml/xml.ex
index b85712d65..8b609f695 100644
--- a/lib/pleroma/web/xml/xml.ex
+++ b/lib/pleroma/web/xml/xml.ex
@@ -4,14 +4,20 @@ defmodule Pleroma.Web.XML do
def string_from_xpath(_, :error), do: nil
def string_from_xpath(xpath, doc) do
- {:xmlObj, :string, res} = :xmerl_xpath.string('string(#{xpath})', doc)
+ try do
+ {:xmlObj, :string, res} = :xmerl_xpath.string('string(#{xpath})', doc)
- res =
- res
- |> to_string
- |> String.trim()
+ res =
+ res
+ |> to_string
+ |> String.trim()
- if res == "", do: nil, else: res
+ if res == "", do: nil, else: res
+ catch
+ e ->
+ Logger.debug("Couldn't find xpath #{xpath} in XML doc")
+ nil
+ end
end
def parse_document(text) do