stop rss parsing at rss tag
This commit is contained in:
1 parent
c4b70323c6
commit
01d6c689c9
2 files changed
+4
No files matched your search
@@ -24,6 +24,7 @@ defmodule FeedReader.Formats.RSS do
|
|||||||
limits: XMLResourceLimits.new(opts),
|
limits: XMLResourceLimits.new(opts),
|
||||||
frames: [],
|
frames: [],
|
||||||
channel: nil,
|
channel: nil,
|
||||||
|
root_closed: false,
|
||||||
error: nil
|
error: nil
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -94,6 +94,9 @@ defmodule FeedReader.Formats.RSS.Handler do
|
|||||||
|
|
||||||
defp close_element("channel", _channel, state), do: {:ok, state}
|
defp close_element("channel", _channel, state), do: {:ok, state}
|
||||||
|
|
||||||
|
defp close_element("rss", _feed, %{frames: []} = state),
|
||||||
|
do: {:halt, %{state | root_closed: true}}
|
||||||
|
|
||||||
defp close_element(name, value, %{frames: [parent | rest]} = state) do
|
defp close_element(name, value, %{frames: [parent | rest]} = state) do
|
||||||
children = Map.update(parent.children, name, value, &(List.wrap(&1) ++ [value]))
|
children = Map.update(parent.children, name, value, &(List.wrap(&1) ++ [value]))
|
||||||
{:ok, %{state | frames: [%{parent | children: children} | rest]}}
|
{:ok, %{state | frames: [%{parent | children: children} | rest]}}
|
||||||
|
|||||||
Reference in new issue
Block a user