형식이 올바르지 않은 XML 파일을받는 중입니다.이 경우 XML 파일을 무시해야합니다.XML이 Elixir에서 올바른 형식으로 구성되어 있는지 확인하는 방법
저는 xmerl을 감싸는 SweetXml을 사용하고 있습니다.
두 속성 사이에 공백이없는 XML 형식이 잘못되었습니다.
is_well_formed 함수가 없습니다. 부울 응답이 단순한 함수는 훌륭합니다.
Xmerl은 파일을 구문 분석하려고 시도하고 파일을 좋아하지 않으므로 종료 메시지를 보냅니다.
나는 감독자에 대해 아직 알지 못했지만, 나는 이것들을 보게된다.
신참이나 간단한 출구 신호를 처리하는 방법이 있습니까?
defmodule XmlIsWellFormed.WellFormed do
def is_well_formed(xml) do
import SweetXml
xml_string = to_string xml
result = xml_string |> parse # parse sends exit.
# FYI - SweetXml.parse :
# def parse(doc) do
# {parsed_doc, _} = :xmerl_scan.string(doc)
# parsed_doc
# end
# Note: inspecting result is no use because xmerl sends an exit with:
# "whitespace_required_between_attributes"
# Something like this would be handy:
# try do
# result = :xmerl_scan.string(xml)
# rescue
# :exit, _ -> nil
# end
end
end
rubbish_xml = '<rubbishml><html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml"></rubbishml>'
XmlIsWellFormed.WellFormed.is_well_formed rubbish_xml
아마도 여기에 뭔가 빠졌지 만 댓글이 달린 try/rescue 코드에 어떤 문제가 있습니까? –