本文整理汇总了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()
示例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
示例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)
示例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:
#.........这里部分代码省略.........
示例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))
示例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()
#.........这里部分代码省略.........
示例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')
#.........这里部分代码省略.........
示例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
#.........这里部分代码省略.........