Ejemplo n.º 1
0
    def __init__(self, element):
        """
		element is a row element containing an unknown number of cells.
		the last cell is where the data is, the others are "indents", which
		determin this node's "level"
		"""

        cells = XmlUtils.getChildElements(element, "TD")
        self.level = len(cells) - 1
        dataCell = cells[-1]
        components = XmlUtils.getChildElements(dataCell, "A")
        icon = components[0]
        img = XmlUtils.getChild("IMG", icon)
        filename = os.path.split(img.getAttribute("SRC"))[1]
        self.type = filename.split(".")[0]
        self.metadatapath = webcatUtils.webcatDomain + icon.getAttribute(
            "HREF")

        linkElement = components[1]
        url = linkElement.getAttribute("HREF")
        label = XmlUtils.getText(linkElement)
        self.link = webcatUtils.WebCatLink((url, label))
        self.title = self.link.label
        self.parent = None
        self.children = None
Ejemplo n.º 2
0
    def getRowCells(self, row, rowNum):
        cells = self.selectNodes(row, 'td')
        data = []
        add = data.append
        for i, cell in enumerate(cells):
            if i == 1:
                if rowNum == 0:  # hdr
                    add(XmlUtils.getText(cell))
                    add('url')
                else:
                    link = XmlUtils.getChild('a', cell)
                    if link == None:
                        if rowNum == 1:
                            add('')
                            add('')
                            continue
                        else:
                            raise NoTopPickDataError, 'No link found in row %d' % rowNum

                    add(XmlUtils.getText(link))
                    add(link.getAttribute('href'))
            else:
                add(XmlUtils.getText(cell))

        return map(self.cleanCellData, data)
Ejemplo n.º 3
0
 def __init__(self, element, unit):
     self.unit = unit
     self.name = urllib.unquote(XmlUtils.getChildText(
         element, 'Name'))  # take the %20s out
     source = XmlUtils.getChild('WorksheetSource', element)
     self.href = urllib.unquote(
         source.getAttribute('HRef'))  # take the %20s out
     self.data_path = os.path.join(utils.ingest_data_dir, self.unit,
                                   self.href)
Ejemplo n.º 4
0
 def __init__(self, element):
     Contributor.__init__(self, element)
     self.type = 'organization'
     organization = XmlUtils.getChild('organization', element)
     if not organization:
         raise Exception, 'organization not found in %s' % self.element.toxml(
         )
     self.instName = XmlUtils.getChildText(organization, 'instName')
     self.instDept = XmlUtils.getChildText(organization, 'instDept')
     self.instEmail = XmlUtils.getChildText(organization, 'instEmail')
Ejemplo n.º 5
0
	def populateXml (self, xmlData):
		dataRec = XmlRecord (xml=xmlData)
		dataElements = dataRec.getElements (dataRec.doc)
		for dataElement in dataElements:
			cells = XmlUtils.getChildElements (dataElement, "TD")
			name = XmlUtils.getText (cells[0]).strip()
			if name[-1] == ":": name = name[:-1]
			value = XmlUtils.getText (XmlUtils.getChild ("B", cells[1])).strip()
			
			XmlUtils.addChild (self.dom, self.normalizeTagName(name), value)
Ejemplo n.º 6
0
 def __init__(self, element):
     Contributor.__init__(self, element)
     self.type = 'person'
     person = XmlUtils.getChild('person', element)
     if not person:
         raise Exception, 'person not found in %s' % self.element.toxml()
     self.nameFirst = XmlUtils.getChildText(person, 'nameFirst')
     self.nameLast = XmlUtils.getChildText(person, 'nameLast')
     self.instName = XmlUtils.getChildText(person, 'instName')
     self.instDept = XmlUtils.getChildText(person, 'instDept')
     self.emailPrimary = XmlUtils.getChildText(person, 'emailPrimary')
Ejemplo n.º 7
0
	def setInstName (self, instName):
		"""
		Affiliations have ONE instName element
		if an instName element does not exist, create one
		set the text of the instName element to provided instName value
		"""
		instNameEl = XmlUtils.getChild ('instName', self.element)
		if not instNameEl:
			instNameEl = self.element.appendChild (XmlUtils.createElement('instName'))
			print 'created instNameEl: ' + instNameEl.toxml()
		XnlUtils.setText(instNameEl, instName)
		return instNameEl
Ejemplo n.º 8
0
    def __init__(self, recInfo, diff=[]):
        self.recInfo = recInfo  # a RecordInfo instance
        self.diff = diff
        self.rec = self.recInfo.getOsmRecord()  # a OsmRecord instance

        self.html = DIV(klass='cmp-record')
        for tag in top_level_elements:
            element = XmlUtils.getChild(tag, self.rec.doc)
            if not element:
                setattr(self, tag, None)
            else:
                setattr(self, tag, self.getTopLevelElement(element, 2))
Ejemplo n.º 9
0
def getResourceIds (path):
	rec = XmlRecord(path=path)
	item_nodes = rec.selectNodes(rec.dom, 'playList:items:item')
	# print '%d item_nodes found' % len(item_nodes)

	ids=[];add=ids.append
	for node in item_nodes:
		if node.getAttribute('type') == 'ccs_saved_resource':
			id_node = XmlUtils.getChild ('id', node)
			add (XmlUtils.getText(id_node))
	ids = filter (lambda x:not x.startswith('CCS'), ids)
	return ids
Ejemplo n.º 10
0
    def __init__(self, element=None, data=None):
        self.object = self.relationship = self.num = self.objectTitle = self.id = self.idType = ''
        if element:
            self.object = element.getAttribute('object') or ''
            self.relationship = element.getAttribute('relationship') or ''
            self.num = element.getAttribute('num') or ''
            self.objectTitle = element.getAttribute('objectTitle')
            idEl = XmlUtils.getChild('id', element)
            if idEl:
                self.id = XmlUtils.getText(idEl) or ""
                self.idType = idEl.getAttribute('type') or ''

        if data:
            for attr in data.keys():
                setattr(self, attr, data[attr])
Ejemplo n.º 11
0
    def __init__(self, search_result):
        self.result = search_result  # an OsmSearchResult instance
        self.collectionName = self.result.collectionName
        self.rec = self.result.payload  # a OsmRecord instance

        self.html = DIV(klass='cmp-record')
        for tag in top_level_elements:
            element = XmlUtils.getChild(tag, self.rec.doc)
            if not element:
                setattr(self, tag, None)
            else:
                setattr(self, tag, self.getTopLevelElement(element, 2))

            if tag == 'resources':
                print "%s - %s (%s)" % (self.result.recId, self.resources,
                                        type(self.resources))
Ejemplo n.º 12
0
	def getAffiliation (self, instName):
		"""
		affilations are associated with ONE instName
		returns Affilation instance for provided instName, creating if necessary
		"""
		affiliationEl = None
		for node in self.getAffiliationElements():
			instNameEl = XmlUtils.getChild('instName', node)
			if XmlUtils.getText(instNameEl) == instName:
				affiliationEl = node
				break
		if not affiliationEl:
			affiliationEl = self.element.appendChild (XmlUtils.createElement('affiliation'))
			instNameEl = affiliationEl.appendChild (XmlUtils.createElement('instName'))
			XmlUtils.setText(instNameEl, instName)
		return Affiliation (affiliationEl)
Ejemplo n.º 13
0
 def getContributorPeople(self):
     personFilter = lambda x: XmlUtils.getChild('person', x)
     nodes = filter(personFilter, self.getContributorNodes())
     return map(ContributorPerson, nodes)
Ejemplo n.º 14
0
	def getSubElementResource (self, element, tagName):
		subElement = XmlUtils.getChild (tagName, element)
		if subElement:
			return subElement.getAttribute ("rdf:resource")	
Ejemplo n.º 15
0
	def getContactInfoProp (self, prop):
		contactInfoEl = XmlUtils.getChild ('contactInfo', self.element)
		if not contactInfoEl:
			return None
		return contactInfoEl.getAttribute(prop)
Ejemplo n.º 16
0
	def setContactInfoProp (self, prop, val):
		contactInfoEl = XmlUtils.getChild ('contactInfo', self.element)
		if not contactInfoEl:
			contactInfoEl = self.element.appendChild (XmlUtils.createElement ('contactInfo'))
		contactInfoEl.setAttribute (prop, val)	
Ejemplo n.º 17
0
	def setChildElementValue (self, tag, value):
		# print "TAG:%s, VALUE: %s" % (tag, value)
		child = XmlUtils.getChild (tag, self.element)
		if not child:
			child = self.element.appendChild(XmlUtils.createElement(tag))
		XmlUtils.setText (child, value)
Ejemplo n.º 18
0
	def getSubElementText (self, element, tagName):
		subElement = XmlUtils.getChild (tagName, element)
		if subElement:
			return XmlUtils.getText (subElement)
Ejemplo n.º 19
0
 def getSubElementText(self, tagName, element=None):
     element = element or self.root
     subElement = XmlUtils.getChild(tagName, element)
     if subElement:
         return XmlUtils.getText(subElement)
Ejemplo n.º 20
0
 def setNameLast(self, name):
     node = XmlUtils.getChild('nameLast', self.element)
     if not node:
         node = XmlUtils.createElement('nameLast')
         self.element.appendChild(node)
     XmlUtils.setText(node, name)
Ejemplo n.º 21
0
 def getSubElementResource(self, tagName, element=None):
     element = element or self.root
     subElement = XmlUtils.getChild(tagName, element)
     if subElement:
         return subElement.getAttribute("rdf:resource")