X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fxml_builder.ex;h=ceeef2755ec57688c63809bab55546a0107fd1bd;hb=dabd535e436789e64f6630460bfadd2f49dcf069;hp=c6d1449036705084f785c056b3dfce32f0ee703e;hpb=b403ea4d2b69cef4434ad68babdfb402d8227847;p=akkoma diff --git a/lib/xml_builder.ex b/lib/xml_builder.ex index c6d144903..ceeef2755 100644 --- a/lib/xml_builder.ex +++ b/lib/xml_builder.ex @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.XmlBuilder do def to_xml({tag, attributes, content}) do open_tag = make_open_tag(tag, attributes) @@ -23,7 +27,7 @@ defmodule Pleroma.XmlBuilder do for element <- content do to_xml(element) end - |> Enum.join + |> Enum.join() end def to_xml(%NaiveDateTime{} = time) do @@ -33,10 +37,13 @@ defmodule Pleroma.XmlBuilder do def to_doc(content), do: ~s() <> to_xml(content) defp make_open_tag(tag, attributes) do - attributes_string = for {attribute, value} <- attributes do - "#{attribute}=\"#{value}\"" - end |> Enum.join(" ") - - [tag, attributes_string] |> Enum.join(" ") |> String.strip + attributes_string = + for {attribute, value} <- attributes do + value = String.replace(value, "\"", """) + "#{attribute}=\"#{value}\"" + end + |> Enum.join(" ") + + [tag, attributes_string] |> Enum.join(" ") |> String.trim() end end