# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # ATOM data conversion functions from util import * from elemutil import * from xmlutil import * # Convert a list of elements to a list of values representing an ATOM entry def entryElementValues(e): lt = filter(selector((element, "'title")), e) t = "" if isNull(lt) else elementValue(car(lt)) li = filter(selector((element, "'id")), e) i = "" if isNull(li) else elementValue(car(li)) lc = filter(selector((element, "'content")), e) return append((element, "'entry", (element, "'title", t), (element, "'id", i)), () if isNull(lc) else () if isAttribute(elementValue(car(lc))) else ((element, "'content", elementValue(car(lc))),)) # Convert a list of elements to a list of values representing ATOM entries def entriesElementValues(e): if isNull(e): return e return cons(entryElementValues(car(e)), entriesElementValues(cdr(e))) # Convert a list of strings to a list of values representing an ATOM entry def readATOMEntry(l): e = readXML(l) if isNull(e): return () return (entryElementValues(car(e)),) # Return true if a list of strings represents an ATOM feed def isATOMFeed(l): if not isXML(l): return False return contains(car(l), "