def MakeXML(self,filpath): # root = Element("GRM") # layers = GRM_Plugin._iface.legendInterface().layers() # for layer in layers: # layerpath=_util.GetLayerPath(layer.name()) # SubElement(root, "data", LayerName=layer.name()).text = layerpath # ElementTree(root).write(filpath, "utf-8") # 2017/06/19 XML 생성 부분 수정 Employees = Element("Employees") layers = GRM_Plugin._iface.legendInterface().layers() for layer in layers: layerpath=_util.GetLayerPath(layer.name()) Employee = Element('Employee', LayerName=layer.name()) LayerPath = Element('LayerPath') LayerPath.text = layerpath Employee.append(LayerPath) Employees.append(Employee) ElementTree(Employees).write(filpath, "utf-8")
def Check_Gmp_xml(self, filepath): self.ProjectFile = filepath # xml 요소 값을 배열에 넣음 self.Set_XML_element() self.Set_XML_element_SubWatershed() self.Set_XML_element_WatchPoints() self.Set_XML_element_FlowControlGrid() self.Set_XML_element_GreenAmptParameter() self.Set_XML_element_SoilDepth() self.Set_XML_element_LandCover() # xml 파싱 doc = ET.parse(self.ProjectFile) root = doc.getroot() GRMProject = ET.Element("GRMProject") GRMProject.set("xmlns", "http://tempuri.org/GRMProject.xsd") ProjectSettings = ET.SubElement(GRMProject, "ProjectSettings") for i in range(0, len(self.XML_element)): for element in root.findall( '{http://tempuri.org/GRMProject.xsd}ProjectSettings'): Datavalue = element.findtext( "{http://tempuri.org/GRMProject.xsd}" + self.XML_element[i]) if self.XML_element[i] == "GRMSimulationType" and ( Datavalue == "" or Datavalue == None): Datavalue = "SingleEvent" if self.XML_element[i] == "LandCoverDataType" and ( Datavalue == "" or Datavalue == None): Datavalue = "File" if self.XML_element[i] == "SoilTextureDataType" and ( Datavalue == "" or Datavalue == None): Datavalue = "File" if self.XML_element[i] == "SoilDepthDataType" and ( Datavalue == "" or Datavalue == None): Datavalue = "File" if self.XML_element[i] == "RainfallDataType" and ( Datavalue == "" or Datavalue == None): Datavalue = "TextFileASCgrid" if self.XML_element[i] == "FlowDirectionType" and ( Datavalue == "" or Datavalue == None): Datavalue = "StartsFromE_TauDEM" if self.XML_element[i] == "IsParallel" and (Datavalue == "" or Datavalue == None): Datavalue = "true" if self.XML_element[i] == "MaxDegreeOfParallelism" and ( Datavalue == "" or Datavalue == None): Datavalue = "-1" if self.XML_element[i] == "SimulStartingTime" and ( Datavalue == "" or Datavalue == None): Datavalue = "0" if self.XML_element[i] == "IsFixedTimeStep" and ( Datavalue == "" or Datavalue == None): Datavalue = "false" if self.XML_element[i] == "'SimulateInfiltration'" and ( Datavalue == "" or Datavalue == None): Datavalue = "true" if self.XML_element[i] == "SimulateSubsurfaceFlow" and ( Datavalue == "" or Datavalue == None): Datavalue = "true" if self.XML_element[i] == "SimulateBaseFlow" and ( Datavalue == "" or Datavalue == None): Datavalue = "true" if self.XML_element[i] == "SimulateFlowControl" and ( Datavalue == "" or Datavalue == None): Datavalue = "true" if self.XML_element[i] == "CrossSectionType" and ( Datavalue == "" or Datavalue == None): Datavalue = "CSSingle" if self.XML_element[i] == "SingleCSChannelWidthType" and ( Datavalue == "" or Datavalue == None): Datavalue = "CWGemeration" if self.XML_element[i] == "BankSideSlopeRight" and ( Datavalue == "" or Datavalue == None): Datavalue = "1.5" if self.XML_element[i] == "BankSideSlopeLeft" and ( Datavalue == "" or Datavalue == None): Datavalue = "1.5" if self.XML_element[i] == "MakeIMGFile" and ( Datavalue == "" or Datavalue == None): Datavalue = "false" if self.XML_element[i] == "MakeASCFile" and ( Datavalue == "" or Datavalue == None): Datavalue = "false" if self.XML_element[i] == "MakeSoilSaturationDistFile" and ( Datavalue == "" or Datavalue == None): Datavalue = "true" if self.XML_element[i] == "MakeRfDistFile" and ( Datavalue == "" or Datavalue == None): Datavalue = "true" if self.XML_element[i] == "MakeRFaccDistFile" and ( Datavalue == "" or Datavalue == None): Datavalue = "true" if self.XML_element[i] == "MakeFlowDistFile" and ( Datavalue == "" or Datavalue == None): Datavalue = "true" if self.XML_element[i] == "PrintOption" and ( Datavalue == "" or Datavalue == None): Datavalue = "All" if self.XML_element[i] == "WriteLog" and (Datavalue == "" or Datavalue == None): Datavalue = "false" ET.SubElement(ProjectSettings, self.XML_element[i]).text = Datavalue GRM._SubWatershedCount = 0 for element in root.findall( '{http://tempuri.org/GRMProject.xsd}SubWatershedSettings'): SubWatershedSettings = ET.SubElement(GRMProject, "SubWatershedSettings") for i in range(0, len(self.XML_element_SubWatershed)): Datavalue = element.findtext( "{http://tempuri.org/GRMProject.xsd}" + self.XML_element_SubWatershed[i]) if self.XML_element_SubWatershed[i] == "IniSaturation" and ( Datavalue == "" or Datavalue == None): Datavalue = "1" elif self.XML_element_SubWatershed[i] == "MinSlopeOF" and ( Datavalue == "" or Datavalue == None): Datavalue = "0.0001" elif self.XML_element_SubWatershed[i] == "MinSlopeChBed" and ( Datavalue == "" or Datavalue == None): Datavalue = "0.0001" elif self.XML_element_SubWatershed[i] == "MinChBaseWidth" and ( Datavalue == "" or Datavalue == None): Datavalue = "00" elif self.XML_element_SubWatershed[i] == "ChRoughness" and ( Datavalue == "" or Datavalue == None): Datavalue = "0.045" elif self.XML_element_SubWatershed[i] == "DryStreamOrder" and ( Datavalue == "" or Datavalue == None): Datavalue = "0" elif self.XML_element_SubWatershed[i] == "IniFlow" and ( Datavalue == "" or Datavalue == None): Datavalue = "0" elif self.XML_element_SubWatershed[ i] == "UnsaturatedKType" and (Datavalue == "" or Datavalue == None): Datavalue = "Linear" elif self.XML_element_SubWatershed[ i] == "CoefUnsaturatedK" and (Datavalue == "" or Datavalue == None): Datavalue = "0.2" elif self.XML_element_SubWatershed[ i] == "CalCoefLCRoughness" and (Datavalue == "" or Datavalue == None): Datavalue = "1" elif self.XML_element_SubWatershed[ i] == "CalCoefPorosity" and (Datavalue == "" or Datavalue == None): Datavalue = "1" elif self.XML_element_SubWatershed[ i] == "CalCoefWFSuctionHead" and (Datavalue == "" or Datavalue == None): Datavalue = "1" elif self.XML_element_SubWatershed[ i] == "CalCoefHydraulicK" and (Datavalue == "" or Datavalue == None): Datavalue = "1" elif self.XML_element_SubWatershed[ i] == "CalCoefSoilDepth" and (Datavalue == "" or Datavalue == None): Datavalue = "1" if self.XML_element_SubWatershed[i] == "UserSet" and ( Datavalue == "" or Datavalue == None): Datavalue = "false" ET.SubElement( SubWatershedSettings, self.XML_element_SubWatershed[i]).text = Datavalue GRM._SubWatershedCount = GRM._SubWatershedCount + 1 GRM._WatchPointCount = 0 for element in root.findall( '{http://tempuri.org/GRMProject.xsd}WatchPoints'): WatchPoints = ET.SubElement(GRMProject, "WatchPoints") for i in range(0, len(self.XML_element_WatchPoints)): Datavalue = element.findtext( "{http://tempuri.org/GRMProject.xsd}" + self.XML_element_WatchPoints[i]) if self.XML_element_WatchPoints[i] == "Name" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_WatchPoints[i] == "ColX" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_WatchPoints[i] == "RowY" and ( Datavalue == "" or Datavalue == None): Datavalue = "" ET.SubElement(WatchPoints, self.XML_element_WatchPoints[i]).text = Datavalue GRM._WatchPointCount = GRM._WatchPointCount + 1 GRM._FlowControlCount = 0 for element in root.findall( '{http://tempuri.org/GRMProject.xsd}FlowControlGrid'): FlowControlGrid = ET.SubElement(GRMProject, "FlowControlGrid") for i in range(0, len(self.XML_element_FlowControlGrid)): Datavalue = element.findtext( "{http://tempuri.org/GRMProject.xsd}" + self.XML_element_FlowControlGrid[i]) if self.XML_element_FlowControlGrid[i] == "ColX" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_FlowControlGrid[i] == "RowY" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_FlowControlGrid[i] == "Name" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_FlowControlGrid[i] == "ControlType" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_FlowControlGrid[i] == "DT" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_FlowControlGrid[i] == "FlowDataFile" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_FlowControlGrid[i] == "IniStorage" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_FlowControlGrid[i] == "MaxStorage" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_FlowControlGrid[i] == "MaxStorageR" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_FlowControlGrid[i] == "ROType" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_FlowControlGrid[i] == "ROConstQ" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_FlowControlGrid[ i] == "ROConstQDuration" and (Datavalue == "" or Datavalue == None): Datavalue = "" ET.SubElement( FlowControlGrid, self.XML_element_FlowControlGrid[i]).text = Datavalue GRM._FlowControlCount = GRM._FlowControlCount + 1 GRM._GreenAmptCount = 0 for element in root.findall( '{http://tempuri.org/GRMProject.xsd}GreenAmptParameter'): GreenAmptParameter = ET.SubElement(GRMProject, "GreenAmptParameter") for i in range(0, len(self.XML_element_GreenAmptParameter)): Datavalue = element.findtext( "{http://tempuri.org/GRMProject.xsd}" + self.XML_element_GreenAmptParameter[i]) if self.XML_element_GreenAmptParameter[i] == "GridValue" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_GreenAmptParameter[i] == "USERSoil" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_GreenAmptParameter[i] == "GRMCode" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_GreenAmptParameter[ i] == "GRMTextureE" and (Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_GreenAmptParameter[ i] == "GRMTextureK" and (Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_GreenAmptParameter[i] == "Porosity" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_GreenAmptParameter[ i] == "EffectivePorosity" and (Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_GreenAmptParameter[ i] == "WFSoilSuctionHead" and (Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_GreenAmptParameter[ i] == "HydraulicConductivity" and (Datavalue == "" or Datavalue == None): Datavalue = "" ET.SubElement( GreenAmptParameter, self.XML_element_GreenAmptParameter[i]).text = Datavalue GRM._GreenAmptCount = GRM._GreenAmptCount + 1 GRM._SoilDepthCount = 0 for element in root.findall( '{http://tempuri.org/GRMProject.xsd}SoilDepth'): SoilDepth = ET.SubElement(GRMProject, "SoilDepth") for i in range(0, len(self.XML_element_SoilDepth)): if self.XML_element_SoilDepth[i] == "SoilDeptht": Datavalue = element.findtext( "{http://tempuri.org/GRMProject.xsd}SoilDepth") else: Datavalue = element.findtext( "{http://tempuri.org/GRMProject.xsd}" + self.XML_element_SoilDepth[i]) if self.XML_element_SoilDepth[i] == "GridValue" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_SoilDepth[i] == "UserDepthClass" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_SoilDepth[i] == "GRMCode" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_SoilDepth[i] == "SoilDepthClassE" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_SoilDepth[i] == "SoilDepthClassK" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_SoilDepth[i] == "SoilDeptht" and ( Datavalue == "" or Datavalue == None): Datavalue = "" ET.SubElement(SoilDepth, self.XML_element_SoilDepth[i]).text = Datavalue GRM._SoilDepthCount = GRM._SoilDepthCount + 1 GRM._LandCoverCount = 0 for element in root.findall( '{http://tempuri.org/GRMProject.xsd}LandCover'): LandCover = ET.SubElement(GRMProject, "LandCover") for i in range(0, len(self.XML_element_LandCover)): Datavalue = element.findtext( "{http://tempuri.org/GRMProject.xsd}" + self.XML_element_LandCover[i]) if self.XML_element_LandCover[i] == "GridValue" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_LandCover[i] == "UserLandCover" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_LandCover[i] == "GRMCode" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_LandCover[i] == "GRMLandCoverE" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_LandCover[i] == "GRMLandCoverK" and ( Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_LandCover[ i] == "RoughnessCoefficient" and (Datavalue == "" or Datavalue == None): Datavalue = "" if self.XML_element_LandCover[i] == "ImperviousRatio" and ( Datavalue == "" or Datavalue == None): Datavalue = "" ET.SubElement(LandCover, self.XML_element_LandCover[i]).text = Datavalue GRM._LandCoverCount = GRM._LandCoverCount + 1 ET.ElementTree(GRMProject).write(self.ProjectFile, encoding="utf-8", xml_declaration=True) with open(self.ProjectFile, 'r') as f: content = f.read() result = content.replace("SoilDeptht", "SoilDepth") f = open(self.ProjectFile, 'w') f.write(result) f.close() ## 줄바꿈과 뛰어쓰기 부분 #def indent(elem, level=0): # i = "\n" + level * " " # j = "\n" + (level - 1) * " " # if len(elem): # if not elem.text or not elem.text.strip(): # elem.text = i + " " # if not elem.tail or not elem.tail.strip(): # elem.tail = i # for subelem in elem: # indent(subelem, level + 1) # if not elem.tail or not elem.tail.strip(): # elem.tail = i # else: # if level and (not elem.tail or not elem.tail.strip()): # elem.tail = i # return elem ## 저장된 파일 다시 불러와서 줄바꿈과 정렬 하기 #doc = ET.parse(self.ProjectFile) #root = doc.getroot() #ET.register_namespace("", "http://tempuri.org/GRMProject.xsd") #indent(root) #doc.write(self.ProjectFile, encoding="utf-8", xml_declaration=True) ds = GRMCore.GRMProject() ds.ReadXml(self.ProjectFile) ds.WriteXml(self.ProjectFile) ds.Dispose()
else: description[0:140] mDesc.append(description) #Create an rss xml file #rss = PyRSS2Gen.RSS2( #title = "Python Project", #link = "http://rockhopper.monmouth.edu/cs/jchung/cs498gpl/python_project", #description = "Get the title, link, and description of each article and write them to a rss feed", #items = [] #) #Append all the elements into the items array #for i in range(len(mTitles)): # a = PyRSS2Gen.RSSItem(title = mTitles[i], link = mLinks[i], description= mDesc[i]) # rss.items.append(a) #rss.write_xml(open('cssenews.rss.xml','w')) root = ET.Element("channel") for i in range(len(mTitles)): item = ET.SubElement(root, "item") title = ET.SubElement(item, "title") title.text = mTitles[i] link = ET.SubElement(item, "link") link.text = mLinks[i] description = ET.SubElement(item, "description") description.text = mDesc[i] tree = ET.ElementTree(root) tree.write("cssenews.rss.xml")
def writeMetaDataToXml(corpusName, outset): root = et.Element("root") ftag = et.Subelement(root, "fname") # organize le data here tree = et.ElementTree(root) tree.write("{}.xml".format(corpusName))