X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fxml_builder.ex;h=33b63a71f3f0c3af377ffe5892e6476d514efd80;hb=4b18a07392558401c88a60db3751feefd9481e13;hp=c6d1449036705084f785c056b3dfce32f0ee703e;hpb=c48c381e909240dcece9f961e4728fa712d089cc;p=akkoma diff --git a/lib/xml_builder.ex b/lib/xml_builder.ex index c6d144903..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.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