Esempio n. 1
0
def parse_attribute(str):
    open = find(str, '{')
    if open>=0:
        close = find(str, '}', open) 
        if close>=0:
            nl = NodeList()
            nl.add(TextNode(encode_attribute_value(str[0:open])))

            val = str[open+1:close]
            code = __builtin__.compile(val, val, "eval")
            
            nl.add(EncodedEvalNode(code, encode_attribute_value))
            nl.add(parse_attribute(str[close+1:]))
            return nl
                   
    return TextNode(encode_attribute_value(str))
Esempio n. 2
0
    def property(self, predicate, object, literal_object=0):
        (namespace, localName) = split_property(predicate)   
        prefix = self.namespaces[namespace]

        # TODO: Is this what we want to do if object is None?
        if object==None or object=="":
            object = ""
            literal_object = 1
            
        if literal_object:
            self.stream.write( "    <%s:%s>%s</%s:%s>\n" % (prefix, localName, encode_character_data(object), prefix, localName) )
        else:
            if self.baseURI and object[0:len(self.baseURI)+1]==self.baseURI+"#":
                object = object[len(self.baseURI):]
            self.stream.write( "    <%s:%s rdf:resource=\"%s\"/>\n" % (prefix, localName, encode_attribute_value(object)) )            
Esempio n. 3
0
 def subject_start(self, subject):
     self.stream.write( "  <rdf:Description" )
     if self.baseURI and subject[0:len(self.baseURI)+1]==self.baseURI+"#":
         self.stream.write( " rdf:ID=\"%s\">\n" % subject[len(self.baseURI)+1:])       
     else:
         self.stream.write( " rdf:about=\"%s\">\n" % encode_attribute_value(subject) )