当前位置: 首页>>代码示例>>Python>>正文


Python SubElement.attrib['type']方法代码示例

本文整理汇总了Python中xml.etree.ElementTree.SubElement.attrib['type']方法的典型用法代码示例。如果您正苦于以下问题:Python SubElement.attrib['type']方法的具体用法?Python SubElement.attrib['type']怎么用?Python SubElement.attrib['type']使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在xml.etree.ElementTree.SubElement的用法示例。


在下文中一共展示了SubElement.attrib['type']方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _build_section

# 需要导入模块: from xml.etree.ElementTree import SubElement [as 别名]
# 或者: from xml.etree.ElementTree.SubElement import attrib['type'] [as 别名]
 def _build_section(self, one_section, section_string):
     section_element = SubElement(self.root_tree, one_section)
     section_element.text = section_string
     
     #print one_section.lower(), 'section'
     if 'title' in one_section.lower():
         section_element.attrib['type'] = 'Title'
     elif 'abstract' in one_section.lower():
         section_element.attrib['type'] = 'Abstract'
     else: 
         section_element.attrib['type'] = ''
         print 'NO SECTION TYPE', one_section.lower()
开发者ID:tiellen,项目名称:bioc_data_handler,代码行数:14,代码来源:bioc_abstract_handler.py

示例2: convert_MoocMultipleChoiceAssessment_to_xml

# 需要导入模块: from xml.etree.ElementTree import SubElement [as 别名]
# 或者: from xml.etree.ElementTree.SubElement import attrib['type'] [as 别名]
def convert_MoocMultipleChoiceAssessment_to_xml(par):
    """ Convert multiple choice question into xml. """
    xml = Element('problem')

    for key in ['display_name', 'max_attempts']:
        xml.attrib[key] = str(par[key])

    p = SubElement(xml, 'p')
    p.text = par['question']

    p = SubElement(xml, 'p')
    p.text = 'Please select correct answer'

    sub = SubElement(xml, 'multiplechoiceresponse')
    sub = SubElement(sub, 'choicegroup')
    sub.attrib['label'] = "Please select correct answer"
    sub.attrib['type'] = "MultipleChoice"

    for i, ans in enumerate(par['answers']):
        choice = SubElement(sub, 'choice')
        if i == par['correct_answer']:
            choice.attrib['correct'] = 'true'
        else:
            choice.attrib['correct'] = 'false'
        choice.text = ans

    if 'explanation' in par:
        add_solution(xml, par['explanation'])

    return xml
开发者ID:Huaguiyuan,项目名称:phys_codes,代码行数:32,代码来源:converter.py

示例3: main

# 需要导入模块: from xml.etree.ElementTree import SubElement [as 别名]
# 或者: from xml.etree.ElementTree.SubElement import attrib['type'] [as 别名]
def main():
    if len(sys.argv) not in [3,4]:
        print '==============================================================================='
        print 'AddUnlabeledSchemeToResidueType.py reads in a cara repository file and modifies'
        print 'the residue-type definitions to include a labeling scheme with N14 and C12.'
        print 'A labeling scheme called \'unlabeled\' is added for this purpose.'
        print ''
        print 'Usage: AddUnlabeledSchemeToResidueType.py infile.cara outfile.cara'
        print 'Number of arguments given: %d'%(len(sys.argv)-1)
        print 'An optional third argument names which project to modify, if'
        print 'there is more than one project in a repository. '
        print '=============================================================================='
        return

    infile = sys.argv[1]
    outfile = sys.argv[2]

    if exists(outfile):
        print '\nOutput file \'%s\' exists. Choose a new name to avoid overwriting.\n'%outfile
        return


    tree = ET.parse(infile)
    root = tree.getroot()
    projects = root.findall('project')

# Select a project according to command-line input, defaulting to the first project

    if len(sys.argv) == 4:
        projectName = sys.argv[3]
        project = getProject(projectName,projects)
        if not project:
            print 'No project found with name \"%s\".'%projectName
            return
    else:
        project = projects[0]
        if not project:
            print 'No project found.'
            return

# Find existing schemes & make a new one by incrementing the highest existing ID number

    library = root.find('library')
    schemes = library.findall('scheme')
    numSchemes = len(schemes)
    if numSchemes > 0:
        schemeIDs = [int(scheme.get('id')) for scheme in schemes]
        schemeIDs.sort()
        newIDnum = schemeIDs[numSchemes-1]+1
        newID = '%d'%newIDnum
    else:
        newID = '1'
    newscheme = SubElement(library,'scheme')
    newscheme.attrib['id'] = newID
    newscheme.attrib['name'] = 'unlabeled%s'%newID

# Modify residue-type

    residueTypes = library.findall('residue-type')
    for residueType in residueTypes:
        atoms = residueType.findall('atom')
        for atom in atoms:
            if atom.get('name')[0]=='N':
                newscheme = SubElement(atom,'scheme')
                newscheme.attrib['id'] = newID
                newscheme.attrib['type'] = 'N14'
            elif atom.get('name')[0]=='C':
                newscheme = SubElement(atom,'scheme')
                newscheme.attrib['id'] = newID
                newscheme.attrib['type'] = 'C12'
                
    tree.write(outfile)
开发者ID:betainverse,项目名称:cara-scripts,代码行数:74,代码来源:AddUnlabeledSchemeToResidueType.py

示例4: xmlSetup

# 需要导入模块: from xml.etree.ElementTree import SubElement [as 别名]
# 或者: from xml.etree.ElementTree.SubElement import attrib['type'] [as 别名]
    def xmlSetup(self, logType, logList):
        """Create xml file with fields from logbook form."""
        
        from xml.etree.ElementTree import Element, SubElement, ElementTree
        from datetime import datetime
        
        curr_time = datetime.now()
        if logType == "MCC":
            # Set up xml tags
            log_entry = Element('log_entry')
            title     = SubElement(log_entry, 'title')
            program   = SubElement(log_entry, 'program')
            timestamp = SubElement(log_entry, 'timestamp')
            priority  = SubElement(log_entry, 'priority')
            os_user   = SubElement(log_entry, 'os_user')
            hostname  = SubElement(log_entry, 'hostname')
            text      = SubElement(log_entry, 'text')
            log_user  = SubElement(log_entry, 'log_user')

            # Check for multiple logbooks and parse into seperate tags
            logbook = []
            for i in range(len(logList)):
                logbook.append(SubElement(log_entry, 'logbook'))
                logbook[i].text = logList[i].lower()
                           
            # Take care of dummy, unchanging tags first
            log_entry.attrib['type'] = "LOGENTRY"
            program.text = "152"
            priority.text = "NORMAL"
            os_user.text = "nobody"
            hostname.text = "mccelog"
            text.attrib['type'] = "text/plain"
            
            # Handle attachment if image exists
            if not self.imagePixmap.isNull():
                attachment = SubElement(log_entry, 'attachment')
                attachment.attrib['name'] = "Figure 1"
                attachment.attrib['type'] = "image/" + self.imageType
                attachment.text = curr_time.strftime("%Y%m%d_%H%M%S_") + str(curr_time.microsecond) + "." + self.imageType
            
            # Set timestamp format
            timestamp.text = curr_time.strftime("%Y/%m/%d %H:%M:%S")
            
            fileName = "/tmp/" + curr_time.strftime("%Y%m%d_%H%M%S_") + str(curr_time.microsecond) + ".xml"
            
        else:  # If using Physics logbook
            timeString = curr_time.strftime("%Y-%m-%dT%H:%M:%S")
            
            # Set up xml tags
            log_entry = Element(None)
            severity  = SubElement(log_entry, 'severity')
            location  = SubElement(log_entry, 'location')
            keywords  = SubElement(log_entry, 'keywords')
            time      = SubElement(log_entry, 'time')
            isodate   = SubElement(log_entry, 'isodate')
            log_user  = SubElement(log_entry, 'author')
            category  = SubElement(log_entry, 'category')
            title     = SubElement(log_entry, 'title')
            metainfo  = SubElement(log_entry, 'metainfo')
            
            # Handle attachment if image exists
            if not self.imagePixmap.isNull():
                imageFile = SubElement(log_entry, 'link')
                imageFile.text = timeString + "-00." + self.imageType
                thumbnail = SubElement(log_entry, 'file')
                thumbnail.text = timeString + "-00.png"
                
            text      = SubElement(log_entry, 'text')  # Logbook expects Text tag to come last (for some strange reason)
            
            # Take care of dummy, unchanging tags first
            log_entry.attrib['type'] = "LOGENTRY"
            category.text = "USERLOG"
            location.text = "not set"
            severity.text = "NONE"
            keywords.text = "none"
            
            time.text = curr_time.strftime("%H:%M:%S")
            isodate.text = curr_time.strftime("%Y-%m-%d")
            
            metainfo.text = timeString + "-00.xml"
            fileName = "/tmp/" + metainfo.text
            
        # Fill in user inputs
        log_user.text = str(self.logui.userName.text())

        title.text = str(self.logui.titleEntry.text())
        if title.text == "":
            QMessageBox().warning(self, "No Title entered", "Please enter a title for the entry...")
            return None
            
        text.text = str(self.logui.textEntry.toPlainText())
        # If text field is truly empty, ElementTree leaves off tag entirely which causes logbook parser to fail
        if text.text == "":
            text.text = " "
        
        # Create xml file
        xmlFile = open(fileName, "w")
        if logType == "MCC":
            ElementTree(log_entry).write(xmlFile)
        else:
#.........这里部分代码省略.........
开发者ID:joelfrederico,项目名称:SciSalt,代码行数:103,代码来源:logbookForm.py

示例5: sld2qml

# 需要导入模块: from xml.etree.ElementTree import SubElement [as 别名]
# 或者: from xml.etree.ElementTree.SubElement import attrib['type'] [as 别名]
    def sld2qml(self):
        try:
            sldDocument = minidom.parseString(self.dlg.sldText2.text().encode('utf-8'))

            # Namespaces (sld, se, none) are most important part. Firstly they must be handled.
            if len(sldDocument.getElementsByTagName('sld:RasterSymbolizer')) > 0:
                nameSpace = 'sld:'

            elif len(sldDocument.getElementsByTagName('se:RasterSymbolizer')) > 0:
                nameSpace = 'se:'

            else:
                nameSpace = ''  # no namespace.

            # main QML structure.
            qmlRoot = Element('qgis')
            pipe = SubElement(qmlRoot, 'pipe')

            rasterRenderer = SubElement(pipe, 'rasterrenderer')
            rasterTransparency = SubElement(rasterRenderer, 'rasterTransparency')

            # checking document for containing ColorMap tag. If does, it is a single-band raster.
            sldRasterType = sldDocument.getElementsByTagName(nameSpace + 'ColorMap')

            if len(sldRasterType) == 0:
                sldRedBand = sldDocument.getElementsByTagName(nameSpace + 'RedChannel')[0].getElementsByTagName(
                    nameSpace + 'SourceChannelName')[0].firstChild.nodeValue
                sldGreenBand = sldDocument.getElementsByTagName(nameSpace + 'GreenChannel')[0].getElementsByTagName(
                    nameSpace + 'SourceChannelName')[0].firstChild.nodeValue
                sldBlueBand = sldDocument.getElementsByTagName(nameSpace + 'BlueChannel')[0].getElementsByTagName(
                    nameSpace + 'SourceChannelName')[0].firstChild.nodeValue

                rasterRenderer.attrib['type'] = 'multibandcolor'
                rasterRenderer.attrib['redBand'] = sldRedBand
                rasterRenderer.attrib['greenBand'] = sldGreenBand
                rasterRenderer.attrib['blueBand'] = sldBlueBand

            else:
                rasterRenderer.attrib['type'] = 'singlebandpseudocolor'
                rasterRenderer.attrib['band'] = '1'
                rasterShader = SubElement(rasterRenderer, 'rastershader')

                colorRampShader = SubElement(rasterShader, 'colorrampshader')

                sldColorMapType = None
                sldColorMapType2 = None
                try:
                    sldColorMapType = sldDocument.getElementsByTagName(nameSpace + 'ColorMap')[0].attributes.has_key(
                        'type')  # sometimes "ColorMap" tag does not contain "type" attribute. This means it is a ramp color.
                    sldColorMapType2 = sldDocument.getElementsByTagName(nameSpace + 'ColorMap')[0].attributes[
                        'type'].value  # or getting raster map colortype by "type" atribute.
                except:
                    pass

                if sldColorMapType and sldColorMapType2 == 'intervals':
                    colorRampShader.attrib['colorRampType'] = 'DISCRETE'
                else:
                    colorRampShader.attrib['colorRampType'] = 'INTERPOLATED'

                sldColorValues = list()
                sldItemList = sldDocument.getElementsByTagName(nameSpace + 'ColorMapEntry')

                # some SLD documents don't have 'label' attribute so the problem is handled by this way.
                try:
                    for m in sldItemList:
                        sldColorValues.append(
                            [m.attributes['quantity'].value, m.attributes['label'].value, m.attributes['color'].value])
                except:
                    for m in sldItemList:
                        sldColorValues.append([m.attributes['quantity'].value, m.attributes['quantity'].value,
                                               m.attributes['color'].value])

                for s in range(len(sldColorValues)):
                    item = SubElement(colorRampShader, 'item')
                    item.attrib['alpha'] = '255'
                    item.attrib['value'] = sldColorValues[s][0]
                    item.attrib['label'] = sldColorValues[s][1]
                    item.attrib['color'] = sldColorValues[s][2]

            # some SLD documents don't have 'Opacity' tag so the problem is handled by this way.
            try:
                sldOpacity = sldDocument.getElementsByTagName(nameSpace + 'Opacity')[0].firstChild.nodeValue
            except:
                sldOpacity = '1'

            rasterRenderer.attrib['opacity'] = sldOpacity

            brightnessContrast = SubElement(pipe, 'brightnesscontrast')
            hueSaturation = SubElement(pipe, 'huesaturation')
            rasterResampler = SubElement(pipe, 'rasterresampler')
            blendMode = SubElement(qmlRoot, 'blendMode')
            blendMode.text = '0'
            textQML = minidom.parseString(tostring(qmlRoot)).toprettyxml(indent="    ")
            self.saveFile(textQML, 'QML')

        except Exception as sldTransformError:
            QMessageBox.critical(None, "Invalid XML", str(sldTransformError))
开发者ID:MSBilgin,项目名称:SLD4raster,代码行数:99,代码来源:sld4raster.py

示例6: qml2Sld

# 需要导入模块: from xml.etree.ElementTree import SubElement [as 别名]
# 或者: from xml.etree.ElementTree.SubElement import attrib['type'] [as 别名]
    def qml2Sld(self):
        try:
            layer = self.allMapLayers[self.dlg.comboBox.currentIndex()]
        except:
            return

        qmlDocument = QDomDocument()
        root = qmlDocument.createElement('SLD4raster')
        qmlDocument.appendChild(root)
        qgisNode = qmlDocument.createElement('qgis')
        root.appendChild(qgisNode)

        errorMessage = None
        context = QgsReadWriteContext()
        layer.writeSymbology(qgisNode, qmlDocument, errorMessage, context)

        qmlString = minidom.parseString(qmlDocument.toString().encode('utf-8'))  # for non ASCII labels.

        sldRoot = Element('sld:StyledLayerDescriptor')
        sldRoot.attrib['xmlns'] = 'http://www.opengis.net/sld'
        sldRoot.attrib['xmlns:sld'] = 'http://www.opengis.net/sld'
        sldRoot.attrib['xmlns:ogc'] = 'http://www.opengis.net/ogc'
        sldRoot.attrib['xmlns:gml'] = 'http://www.opengis.net/gml'
        sldRoot.attrib['version'] = '1.0.0'

        userLayer = SubElement(sldRoot, 'sld:UserLayer')
        layerFeatureConstraints = SubElement(userLayer, 'sld:LayerFeatureConstraints')
        featureTypeConstraint = SubElement(layerFeatureConstraints, 'sld:FeatureTypeConstraint')
        userStyle = SubElement(userLayer, 'sld:UserStyle')

        styleName = SubElement(userStyle, 'sld:Name')
        styleName.text = self.dlg.comboBox.currentText()

        styleDescription = SubElement(userStyle, 'sld:Description')
        styleDescription.text = 'Generated by SLD4raster - https://cbsuygulama.wordpress.com/sld4raster'

        styleTitle = SubElement(userStyle, 'sld:Title')
        featureTypeStyle = SubElement(userStyle, 'sld:FeatureTypeStyle')
        featureName = SubElement(featureTypeStyle, 'sld:Name')
        featureRule = SubElement(featureTypeStyle, 'sld:Rule')
        rasterSymbolizer = SubElement(featureRule, 'sld:RasterSymbolizer')
        geometry = SubElement(rasterSymbolizer, 'sld:Geometry')
        ogcPropertyName = SubElement(geometry, 'ogc:PropertyName')
        ogcPropertyName.text = 'grid'
        opacity = SubElement(rasterSymbolizer, 'sld:Opacity')

        ###Getting raster type parameters
        rasterType = str(qmlString.getElementsByTagName('rasterrenderer')[0].attributes['type'].value)
        isGradient = 'gradient' in qmlString.getElementsByTagName('rasterrenderer')[0].attributes.keys()

        ###SLD for multiband raster
        if rasterType == 'multibandcolor':
            ###Getting RGB band order.
            redBand = str(qmlString.getElementsByTagName('rasterrenderer')[0].attributes['redBand'].value)
            greenBand = str(qmlString.getElementsByTagName('rasterrenderer')[0].attributes['greenBand'].value)
            blueBand = str(qmlString.getElementsByTagName('rasterrenderer')[0].attributes['blueBand'].value)

            channelSelection = SubElement(rasterSymbolizer, 'sld:ChannelSelection')

            redChannel = SubElement(channelSelection, 'sld:RedChannel')
            redSourceChannel = SubElement(redChannel, 'sld:SourceChannelName')
            redSourceChannel.text = redBand

            greenChannel = SubElement(channelSelection, 'sld:GreenChannel')
            greenSourceChannel = SubElement(greenChannel, 'sld:SourceChannelName')
            greenSourceChannel.text = greenBand

            blueChannel = SubElement(channelSelection, 'sld:BlueChannel')
            blueSourceChannel = SubElement(blueChannel, 'sld:SourceChannelName')
            blueSourceChannel.text = blueBand

        ###SLD for gradiented (black to white) raster
        elif isGradient:
            blackWhiteColor = ['#000000', '#FFFFFF']
            colorMap = SubElement(rasterSymbolizer, 'sld:ColorMap')
            gradientType = qmlString.getElementsByTagName('rasterrenderer')[0].attributes['gradient'].value
            blackWhiteValue = [qmlString.getElementsByTagName('minValue')[0].firstChild.nodeValue,
                               qmlString.getElementsByTagName('maxValue')[0].firstChild.nodeValue]

            ###Getting gradient color type
            if gradientType == 'WhiteToBlack':
                blackWhiteColor.reverse()

            for i in range(len(blackWhiteColor)):
                colorMapEntry = SubElement(colorMap, 'sld:ColorMapEntry')
                colorMapEntry.attrib['color'] = blackWhiteColor[i]
                colorMapEntry.attrib['opacity'] = '1.0'
                colorMapEntry.attrib['quantity'] = blackWhiteValue[i]

        ###SLD for singleband raster
        else:
            colorMap = SubElement(rasterSymbolizer, 'sld:ColorMap')

            ###Getting color ramp type
            colorType = str(qmlString.getElementsByTagName('colorrampshader')[0].attributes['colorRampType'].value)
            if colorType == 'DISCRETE':
                colorMap.attrib['type'] = "intervals"

            ###Getting color values
            colorValue = list()
#.........这里部分代码省略.........
开发者ID:MSBilgin,项目名称:SLD4raster,代码行数:103,代码来源:sld4raster.py

示例7: csv_row_to_mods

# 需要导入模块: from xml.etree.ElementTree import SubElement [as 别名]
# 或者: from xml.etree.ElementTree.SubElement import attrib['type'] [as 别名]
def csv_row_to_mods(csv_row,csv_defs,dest,date):
    """csv_row->List(String) a single row read in from a csv reader
       csv_defs->List(String) the first row from a csv file to give the dict keys
       dest->(String) Path to folder where MODS.xml will be saved
       date->(Stirng) DateCaptured YYYY-MM-DD from scandata

       the following keys are currently in use:
        title
        role
        dateCaptured
        dateQualifier
        dateCreated
        noteOnDateCreated
        description
        identifierLocal
        form
        extent
        note
        language
        topic
        continent
        country
        province
        state
        county
        city
        coordinates
        source

        The keys from the csv file are checked to exist before setting the data, because some meta data won't always be there.
        
        Create a mods file from a csv row (already processed in lists) """

    meta = dict(zip(csv_defs,csv_row))

    xmlns_uris = ['http://www.loc.gov/mods/v3', 'http://www.loc.gov/mods/v3','http://www.w3.org/2001/XMLSchema-instance','http://www.w3.org/1999/xlink']
    
    mods = Element("mods")
    mods.attrib['xmlns'] = xmlns_uris[0]
    mods.attrib['xmlns:mods'] = xmlns_uris[1]
    mods.attrib['xmlns:xsi'] = xmlns_uris[2]
    mods.attrib['xmlns:xlink'] = xmlns_uris[3]

    titleinfo = SubElement(mods,'titleInfo')
    title = SubElement(titleinfo,'title')
    title.text = meta['title']


    name = SubElement(mods,'name')
    name.attrib['type'] = "personal" # Hardcoded
    namepartname = SubElement(name,'namePart')
    namepartname.text = "Spiller, Harley J."
    namepartdate = SubElement(name,'namePart')
    namepartdate.attrib['type']='date'
    namepartdate.text = "1959-"

    role = SubElement(name,'role')
    rolepart = SubElement(role,'roleTerm')
    rolepart.text = meta['role']
    rolepart.attrib['authority'] = "marcrelator"
    rolepart.attrib['type'] = "text"

    typeofresource= SubElement(mods,'typeOfResource')
    typeofresource.text = "text"

    genre = SubElement(mods,'genre')
    genre.text = "menu"

    origininfo = SubElement(mods,'originInfo')
    datecaptured = SubElement(origininfo,'dateCaptured')
    datecaptured.text = date
    datecreated = SubElement(origininfo, 'dateCreated')
    datecreated.attrib['qualifier'] = meta['dateQualifier']
    datecreated.text = meta['dateCreated']

    datenote = SubElement(mods,'note')
    datenote.attrib['ID'] = "datenote"
    datenote.text = meta['dateNote']

    description = SubElement(mods,'abstract')
    description.text = meta['description']

    identifier= SubElement(mods,'identifier')
    identifier.attrib['type'] = "local"
    identifier.text = meta['identifierLocal']


    physicaldesc = SubElement(mods,'physicalDescription')
    form = SubElement(physicaldesc,'form')
    form.attrib['authority'] = "marcform"
    form.text = meta['form']
    extent = SubElement(physicaldesc,'extent')
    extent.text = meta['extent']

    note = SubElement(mods,'note')
    note.text = meta['note']

    language = SubElement(mods,'language')
    for langtext in meta['language'].split(" | "):
        languageterm = SubElement(mods,'languageTerm')
#.........这里部分代码省略.........
开发者ID:CadenArmstrong,项目名称:internetarchive_scripts,代码行数:103,代码来源:csv_to_mods.py

示例8: main

# 需要导入模块: from xml.etree.ElementTree import SubElement [as 别名]
# 或者: from xml.etree.ElementTree.SubElement import attrib['type'] [as 别名]
def main():
    if len(sys.argv) not in [3,4]:
        print '==============================================================================='
        print 'AddILVlabelingScheme.py reads in a cara repository file and modifies the'
        print 'residue-type definitions to include a labeling scheme with 12C and 2H'
        print 'except at methyl groups of I, L, and V.'
        print ''
        print 'A labeling scheme called \'ILVnoesy\' is added for this purpose.'
        print ''
        print 'Usage: AddILVlabelingScheme.py infile.cara outfile.cara'
        print 'Number of arguments given: %d'%(len(sys.argv)-1)
        print 'An optional third argument names which project to modify, if'
        print 'there is more than one project in a repository. '
        print '=============================================================================='
        return

    infile = sys.argv[1]
    outfile = sys.argv[2]

    if infile == outfile:
        print '\nPlease do not overwrite your original file. Try again.\n'
        return

    tree = ET.parse(infile)
    root = tree.getroot()
    projects = root.findall('project')

# Select a project according to command-line input, defaulting to the first project

    if len(sys.argv) == 4:
        projectName = sys.argv[3]
        project = getProject(projectName,projects)
        if not project:
            print 'No project found with name \"%s\".'%projectName
            return
    else:
        project = projects[0]
        if not project:
            print 'No project found.'
            return

# Find existing schemes & make a new one by incrementing the highest existing ID number

    library = root.find('library')
    schemes = library.findall('scheme')
    numSchemes = len(schemes)
    if numSchemes > 0:
        schemeIDs = [int(scheme.get('id')) for scheme in schemes]
        schemeIDs.sort()
        newIDnum = schemeIDs[numSchemes-1]+1
        newID = '%d'%newIDnum
    else:
        newID = '1'
    newscheme = SubElement(library,'scheme')
    newscheme.attrib['id'] = newID
    newscheme.attrib['name'] = 'ILVnoesy15N-%s'%newID

# Modify residue-type

    residueTypes = library.findall('residue-type')
    for residueType in residueTypes:
        if residueType.get('letter') not in ('I','L','V'):
            atoms = residueType.findall('atom')
            for atom in atoms:
                if atom.get('name')[0]=='C':
                    newscheme = SubElement(atom,'scheme')
                    newscheme.attrib['id'] = newID
                    newscheme.attrib['type'] = 'C12'
                elif atom.get('name')[0]=='H' and atom.get('name')!='H':
                    newscheme = SubElement(atom,'scheme')
                    newscheme.attrib['id'] = newID
                    newscheme.attrib['type'] = 'H2'
        elif residueType.get('letter')=='L':
            atoms = residueType.findall('atom')
            for atom in atoms:
                if atom.get('name')[0]=='C' and atom.get('name')[0:2]!='CD':
                    newscheme = SubElement(atom,'scheme')
                    newscheme.attrib['id'] = newID
                    newscheme.attrib['type'] = 'C12'
                elif atom.get('name')[0]=='H' and atom.get('name')[0:2]!='HD' and atom.get('name')!='H':
                    newscheme = SubElement(atom,'scheme')
                    newscheme.attrib['id'] = newID
                    newscheme.attrib['type'] = 'H2'
        elif residueType.get('letter')=='V':
            atoms = residueType.findall('atom')
            for atom in atoms:
                if atom.get('name')[0]=='C' and atom.get('name')[0:2]!='CG':
                    newscheme = SubElement(atom,'scheme')
                    newscheme.attrib['id'] = newID
                    newscheme.attrib['type'] = 'C12'
                elif atom.get('name')[0]=='H' and atom.get('name')[0:2]!='HG' and atom.get('name')!='H':
                    newscheme = SubElement(atom,'scheme')
                    newscheme.attrib['id'] = newID
                    newscheme.attrib['type'] = 'H2'
        elif residueType.get('letter')=='I':
            atoms = residueType.findall('atom')
            for atom in atoms:
                if atom.get('name')[0]=='C' and atom.get('name')[0:2]!='CD':
                    newscheme = SubElement(atom,'scheme')
                    newscheme.attrib['id'] = newID
#.........这里部分代码省略.........
开发者ID:betainverse,项目名称:cara-scripts,代码行数:103,代码来源:AddNoesyILV15NlabelingScheme.py


注:本文中的xml.etree.ElementTree.SubElement.attrib['type']方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。