# LoadMetadata.py # with altered dates for current month # using element tree # create original Metadata with same name as layer # run this to alter to name_et.xml # reload into filegeodatabase # Note there is no tool to unload metadata # 15 March 2010 import arcgisscripting,sys,os import elementtree.ElementTree as ET import sys,os,datetime print print def alter(xmlfile,edDate,publishDate,createDate) : """ read xml file for featureclass or table change dates to today,loading date and extract date empty processing logs write out file with _et suffix return file name """ print xmlfile tree = ET.parse(xmlfile) ## print tree.getroot().tag, tree.getroot().text,tree.getroot().tail,tree.getroot().attrib # Edition Date elem = list(tree.iter("resEdDate"))[0] # print elem.tag,elem.text elem.text = edDate ## print elem.text # Reference Date 001 (Creation) elem = list(tree.iter("refDate"))[0] # print elem.tag,elem.text elem.text = createDate ## print elem.text # note there may be two of these dates # DateTypCd 001 and 002 # Reference Date 002 (Publication) if len(list(tree.iter("refDate"))) > 1 : elem = list(tree.iter("refDate"))[1] # print elem.tag,elem.text elem.text = publishDate else : print "skipping publication date",xmlfile ## print elem.text # clear out lineag if it exists try : lin = list(tree.iter("lineage"))[0] # print lin.tag lin.clear() lin.text = "Cleared" except : gp.AddMessage("skipping clear lineage") outfile = xmlfile.replace(".","_et.") tree.write(outfile) return outfile # ---------------------- main ---------------------- try : publishDate = sys.argv[1] createDate = sys.argv[2] if createDate == '#' : createDate = publishDate gp.AddMessage(publishDate+type(publishDate)) except : today = datetime.datetime.now() firstSat = today.replace(day=1) + datetime.timedelta(5 - datetime.datetime.now().replace(day=1).weekday()) publishDate = firstSat.strftime("%Y%m%d") createDate = publishDate # override publishDate = '20100804' createDate = '20100710' gp = arcgisscripting.create(9.3) os.chdir("e:/crs/metadata") edDate = str(datetime.datetime.now().date()).replace("-","") edDate = '20100914' gp.AddWarning(edDate+" edit date") gp.AddWarning(publishDate+" publish date") gp.AddWarning(createDate+" create date") ws = "e:/crs/corax.gdb" metasrc = "e:/crs/metadata" gp.Workspace = ws os.chdir(metasrc) print print ws print metasrc print lstFC = gp.ListFeatureClasses("*") for fc in lstFC : # print fc fcxml = metasrc+"/"+fc+".xml" if os.path.exists(fcxml) : etxml = alter(fcxml,edDate,publishDate,createDate) gp.MetadataImporter_conversion (etxml,fc) print fc,"updated" else : pass print etxml,"not found" lstTab = gp.ListTables("*") for tab in lstTab : # print tab tabxml = metasrc+"/"+tab+".xml" if os.path.exists(tabxml) : etxml = alter(tabxml,edDate,publishDate,createDate) gp.MetadataImporter_conversion (etxml,tab) print tab,"updated" gp.AddMessage(tab+" updated") else : pass print etxml,"not found" gp.AddError(etxml+" not found")
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.