X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fxml_builder.ex;h=33b63a71f3f0c3af377ffe5892e6476d514efd80;hb=c433ed9dbb1db9777f235527e06c9c8bec3b1436;hp=52358c437c78ed9ba016448e8acb4ce3a6db681c;hpb=59770c3f5c9a038dbde6b2e1cd1551a7b8f1672b;p=akkoma diff --git a/lib/xml_builder.ex b/lib/xml_builder.ex index 52358c437..33b63a71f 100644 --- a/lib/xml_builder.ex +++ b/lib/xml_builder.ex @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 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.trim + 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